导出返回STL对象的dll方法

时间:2017-11-07 19:20:35

标签: c++ visual-studio dll stl

我试图从返回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创建的,具有相同的设置。

如何以正确的方式导出此方法?

0 个答案:

没有答案