各位哥哥, 用C++的一个程序中 调用C++ DLL中的这个函数 extern "C" char* __stdcall GetSomething() { char* Name = "WuHan"; return Name; } 在代码如下 : char* vID = GetSomething(); 结果显示 在 DLL中 NAME值 正常, 但是返回到C++程序却为空,请问问题在哪,怎么解决?感谢各位哥哥。
__stdcall 在函数退出时就清栈了,一般不能使用局部变量做返回值 试试 __cdecl 或者建议把缓冲区和缓冲区和长度作为指针传入,这样不受调用规约影响 extern "C" char* __stdcall GetSomething(char *szBuffer, int iLen) { strcpy_s(szBuffer, iLen, "xxxx"); return szBuffer; }
GetSomething函数修改一下,GetSomething(CString str);
15,472
社区成员
49,183
社区内容
加载中
试试用AI创作助手写篇文章吧