我从Dll调用函数跟随。
testVC2.dll
char * getcheck();
char * getcheck(){
strcpy(Detail::AMessage, a.auth_answ.Check);
return Detail::AMessage;
}
我的def文件。
LIBRARY
EXPORTS
getcheck @1
我的VB代码
Public Declare Function getcheck Lib "testVC2.dll" () As String
Console.WriteLine(getcheck() )
它给出了错误并且应用程序崩溃了但是当我尝试从函数返回整数时它可以工作。
答案 0 :(得分:0)
尝试返回BSTR:
#include <comutil.h>
BSTR getcheck();
BSTR getcheck(){
_bstr_t bstr1(a.auth_answ.Check);
BSTR bstr;
bstr = bstr1.copy();
return bstr;
}
答案 1 :(得分:0)
将字符串从C ++返回到托管语言的正常方法是将StringBuilder作为输出参数传递。
这样的事情:
//C++
// place your output message into str
void foo(char* str);
//C#
void foo(StringBuilder str);