我有一个编译为 DLL 的 C++ 项目。我有几个拥有 m_dSurveyStore 作为成员变量的类。地图有std::string
键和各种自定义类的值。例如:
std::unordered_map< std:string , Survey > SurveyStore;
这些类需要从我的 DLL 中公开以供其他程序(控制台 C++ 和 .Net 代码)使用。当我std::string
用作映射键时,我会收到编译器警告,如“需要类的客户端使用 dll 接口”。我已经阅读了其他警告不要公开使用 std 类型的接口的帖子。
理想情况下,我的映射将是私有成员变量,并且(我认为)不会暴露在 DLL 之外:
class __declspec(dllexport) Project
{
private:
SurveyStore m_dSurveyStore;
}
char *
如果我想以这些映射作为成员公开类,我应该使用我的映射键类型,还是有一种可靠的方法来坚持std::string
并只公开该类?如果 char * 是要走的路,请提供定义char *
键的语法。