这是我的 C++ 非托管 dll 代码。
void Only(char *a)
{
*a++ = 'p';
*a++ = 'r';
*a++ = 'a';
*a++ = 'n';
*a++ = 'i';
*a++ = 0;
}
.def 文件用于导出符号。
我在 VB.Net 应用程序中使用了 Only 函数,如下所示,
Declare Sub Only Lib "dllproj2.dll" Alias "Only" (b As StringBuilder)
....
Dim s As StringBuilder = New StringBuilder()
Only(s)
它工作正常。但是当我尝试如下使用 b 作为 ByRef 时,
Declare Sub Only Lib "dllproj2.dll" Alias "Only" (ByRef b As StringBuilder)
它给出了图像中显示的异常。
我不懂为什么。ByRef 在这里不是更合适吗?
谢谢。