在我的VB.NET应用程序中,我使用了一个来自.dll的函数,它会给我一个字符串。 当调用该函数时,回调会给出该字符串的长度和地址,而不是字符串本身。来自VB.NET地址的字符串
我尝试使用此代码来获取字符串,但我认为这是针对VB的经典,而不是为VB.NET:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Object, ByVal Source As Object, ByVal Length As Long)
Private Declare Function lstrlenA Lib "kernel32" (ByVal lpString As Long) As Long
Private Function pvToString(ByVal lPtr As Long) As String
If lPtr <> 0 Then
pvToString = String(lstrlenA(lPtr), 0)
Call CopyMemory(ByVal pvToString, ByVal lPtr, Len(pvToString))
End If
End Function
我得到4个错误,我不知道如何摆脱其中:
- '。'预期(用于字符串第5行)
- “字符串”是一个类类型,不能用作表达式(对于第5行)
- 表达预期的(用于BYVAL第6行)
- 表达预期的(对第6行为ByVal)
对不起,如果我的问题很蠢。我在编程起动器和VB.NET
什么我可以帮助你:删除'ByVal'。 –
完整的例子是如何使用这个在这里:http://www.pinvoke.net/default.aspx/urlmon/CopyMemory.html –
在看了一个VB6文档后,'String()'函数只是创建一个字符串填充与指定数量的特定字符一起使用。你应该能够删除这条线没有任何问题。 –