我试图从返回STL对象的DLL导出方法。我正在使用MFC。
例如在我的dll中我有:
std::map<CString, CString> __declspec(dllexport) __stdcall MyMethod(CString str1, CString str2, bool boolValue)
{
//here create map
std::map<CString, CString> map;
map.insert(std::make_pair("key1", "value1"));
return map;
}
我试图在我的exe应用程序中加载dll文件:
//Here I'm sure dll is loaded in proper way
HINSTANCE dllHandle = dllHandle = LoadLibrary("mydll.dll");
//Then I'm getting pointer to exported method:
typedef std::map<CString, CString>(__stdcall *DllMyMethod)(CString str1, CString str2, bool boolValue);
//This is my class member:
DllMyMethod callMyMethod;
//And getting this function pointer
callMyMethod = (DllMyMethod)GetProcAddress(dllHandle, "MyMethod");
不幸的是,callMyMethod
指针是空的。 Exe app和dll应用程序是使用Visual Studio 2013创建的,具有相同的设置。
如何以正确的方式导出此方法?