满意答案
wurnma112
2014.07.21
采纳率:52% 等级:8
已帮助:311人
1、 函数调用方式错误,VB调用的话,你的函数必须声明为__stdcall约定,否则VB调用会失败;(具体请搜索“C 函数调用约定")
2、函数定义错误,应该这样:
extern "C" _declspec(dllexport) char* __stdcall str(char *stra,char *strb)
这样导出的函数名会是_str@8
3、实现有问题:
你返回了一个位于栈上的字符数组,函数返回后,该数组将被释放并被覆盖
应改为
extern "C" _declspec(dllexport) char* __stdcall str(char *stra,char *strb)
{
return "dsfds";
}
4、VB调用
private declare function str lib "xxx.dll" alias "_str@8" (byval a as string,byval b as string) as string
private sub form1_load()
msgbox str("a","b");
end sub追问: 不行啊。
追答:什么不行?
00分享举报