VB.NET DLL中的C ++ DLL函数复制

我很迷茫,是个新手,所以请耐心等待。

在C ++中,该函数如下所示:

int __stdcall helloworld(HWND mWnd,HWND aWnd,char *data,char *parms,BOOL show,BOOL nopause) {
    strcpy(data,"hello world");
    return 3;
}

我正在尝试在VB.NET中复制它,而我在char *datachar *parms部分碰到了一堵墙。

Public Shared Function helloworld(ByVal mWnd As IntPtr,ByVal aWnd As IntPtr,ByRef data As Char,ByRef parms As Char,ByVal show As Boolean,ByVal nopause As Boolean) As Integer
    data = "hello world"
    Return 3
End Function

这导致输出"h",因此我尝试了data(),这导致了乱码。然后我在某处读取到VB.NET中等效于C / C ++ char的字节,因此我尝试了data() As Bytedata = System.Text.Encoding.Default.GetBytes("hello world"),这又导致了乱码。

DLL接收到的内容无法更改,因此我需要找到一种VB.NET对其进行处理的方法。我的问题是;如何在VB.NET中做到这一点?甚至可以做到吗?

keikoi 回答:VB.NET DLL中的C ++ DLL函数复制

在进行了一些密集的按钮粉碎之后,由于Visual Vincent的StringBuilder建议,我设法做到了:

.exe

也将ByRef更改为ByVal。

本文链接:https://www.f2er.com/3094960.html

大家都在问