如何从dll中返回std::string类型的字符串,内详!

xxllaaa xxllaaa 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在dll中定义一个函数如下
std::string __stdcall GetDllString()
{
std::string str = "hello?";

return str;
}
该函数只是简单的返回一个字符串,我在应用程序中以如下方式调用
void CTest_common_dllDlg::OnBtnConvert()
{
std::string str;
typedef std::string (__stdcall* PFN_GETSTRING)();
HINSTANCE hInst = LoadLibrary("dll.dll");
if (hInst) {
PFN_GETSTRING pfnGetString = reinterpret_cast<PFN_GETSTRING>(GetProcAddress(hInst, "GetDllString"));
if (pfnGetString) {
str = pfnGetString();
}
}
MessageBox(str.c_str());

FreeLibrary(hInst);
}

但是在该按钮函数运行结束后就会发生内存不能为read的错误!

请问各位大侠,这个问题该如何解决,100分不成敬意!
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
xxllaaa
C++ 语言 65,214 成员 250,514 内容