如何从dll中返回std::string类型的字符串,内详!
我在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分不成敬意!