[已解决]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.默认只有升序,如何调整参数实现降序?
谢谢!
-------------------------------------
感谢三楼四楼高手的回答,问题完美解决! 写个方法vb调用吧,原排序后调用list.Reverse()降序。 本帖最后由 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 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 用C#写的代码,报毒,有没有什么好方法处理,不报 key125 发表于 2022-2-24 21:59
用C#写的代码,报毒,有没有什么好方法处理,不报
删除杀毒软件 izhen 发表于 2022-2-24 22:03
删除杀毒软件
不代表别人以不使用杀毒软件 key125 发表于 2022-2-24 21:59
用C#写的代码,报毒,有没有什么好方法处理,不报
可以试试使用upx加壳 key125 发表于 2022-2-24 21:59
用C#写的代码,报毒,有没有什么好方法处理,不报
你写的啥代码,正常情况下我还没见到过报毒的C#的exe 我在软件内吊用了PDF的软件,
页:
[1]
2