vba调用cb的dll问题

zhaowd 2013-11-15 11:29:18

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崩溃了

请高手指正。
...全文
219 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
junlinfushi 2013-11-15
  • 打赏
  • 举报
回复
坐等大神来回答
zhaowd 2013-11-15
  • 打赏
  • 举报
回复
有人不,求高手帮助!

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧