vba调用cb的dll问题
bcb编译的dll接口如下:
extern "C" __declspec(dllexport) char* __stdcall id(char *code);
char* __stdcall id(char *code)
{
return (char *)_qtn->id(code).c_str();
}
vba中调用代码:
Private Declare Function id Lib "PGetQsr.dll" (ByVal a1 As String) As String
Dim a As String
a = id("SHFIF1311") //运行至这一行,excel崩溃了
是不是c里面的char*到vba的String内存访问有问题
也尝试用传地址的方式调用,同样的错误:
//dll接口
extern "C" __declspec(dllexport) char* __stdcall id(char *code,char *ret);
char* __stdcall id(char *code,char *ret)
{
strcpy(ret,(char *)_qtn->id(code).c_str());
return (char *)_qtn->id(code).c_str();
}
//vba
Private Declare Function id Lib "PGetQsr.dll" (ByVal a1 As String, ByRef a1 As String) As String
Dim a As String
Call id("SHFIF1311",a) //运行至这一行,excel崩溃了
请高手指正。