zhanglei1371 发表于 2022-2-24 19:11

[已解决]C#系统内置排序代码如何转化为VB.net?

本帖最后由 zhanglei1371 于 2022-2-24 22:05 编辑

https://www.cnblogs.com/mqxs/p/4270228.html
代码很简单:


private static extern intStrCmpLogicalW(string psz1, stringpsz2);

List<string> list = new List<string>();

list.Add("10");

list.Add("2");

list.Add("12");

list.Sort(StrCmpLogicalW);

有两个问题希望能得到解决:
1.这个怎么转换为VBnet(最后会提示传递参数错误)?
2.默认只有升序,如何调整参数实现降序?
谢谢!

-------------------------------------
感谢三楼四楼高手的回答,问题完美解决!

ps122 发表于 2022-2-24 20:37

写个方法vb调用吧,原排序后调用list.Reverse()降序。

ps122 发表于 2022-2-24 21:05

本帖最后由 ps122 于 2022-2-24 21:16 编辑

试试看应该可以:
Public Class nvSorter
    Implements IComparer(Of String)
    Dim k As Int16 = 1
    Public Sub New(ByVal x0 As Int16)
      k = x0
    End Sub
    Declare Unicode Function StrCmpLogicalW Lib "shlwapi.dll" (ByVal s1 As String, ByVal s2 As String) As Int32
    Public Function Compare(ByVal x As String, ByVal y As String) As Integer Implements System.Collections.Generic.IComparer(Of String).Compare
      Return k * StrCmpLogicalW(x, y)
    End Function
End Class
      list.Sort(New nvSorter(1)) '升序
      list.Sort(New nvSorter(-1)) '降序
      list.Reverse() '反序
参考https://oomake.com/question/985897

izhen 发表于 2022-2-24 21:38

        Friend Class Program
                Private Declare Unicode Function StrCmpLogicalW Lib "Shlwapi.dll" (psz1 As String, psz2 As String) As Integer

                Private Shared Sub Main(args As String())
                        Dim list As List(Of String) = New List(Of String)()
                        list.Add("10")
                        list.Add("2")
                        list.Add("12")
                        list.Sort(AddressOf Program.StrCmpLogicalW)
                        list.Reverse()
                End Sub
        End Class

key125 发表于 2022-2-24 21:59

用C#写的代码,报毒,有没有什么好方法处理,不报

izhen 发表于 2022-2-24 22:03

key125 发表于 2022-2-24 21:59
用C#写的代码,报毒,有没有什么好方法处理,不报

删除杀毒软件

key125 发表于 2022-2-24 22:04

izhen 发表于 2022-2-24 22:03
删除杀毒软件

不代表别人以不使用杀毒软件

zhanglei1371 发表于 2022-2-24 22:06

key125 发表于 2022-2-24 21:59
用C#写的代码,报毒,有没有什么好方法处理,不报

可以试试使用upx加壳

DrCatcher 发表于 2022-2-24 22:09

key125 发表于 2022-2-24 21:59
用C#写的代码,报毒,有没有什么好方法处理,不报

你写的啥代码,正常情况下我还没见到过报毒的C#的exe

key125 发表于 2022-2-24 22:16

我在软件内吊用了PDF的软件,
页: [1] 2
查看完整版本: [已解决]C#系统内置排序代码如何转化为VB.net?