Visual studio 2010 STL容器能否在托管代码和非托管代码之间共享?
Visual Studio 2010: 普通C++代码Visual studio 2010 STL容器能否在托管代码和非托管代码之间共享?,visual-studio-2010,clr,managed-c++,Visual Studio 2010,Clr,Managed C++,Visual Studio 2010: 普通C++代码: class __declspec(dllexport) Something { // obviously switched in the usual way to import as needed std::vector<unsigned short> a_vector; }; class_uudeclspec(dllexport)某些东西{//显然是以通常的方式切换到需要的时候导入的 std::向量a_向量;
:
class __declspec(dllexport) Something { // obviously switched in the usual way to import as needed
std::vector<unsigned short> a_vector;
};
class_uudeclspec(dllexport)某些东西{//显然是以通常的方式切换到需要的时候导入的
std::向量a_向量;
};
这段代码编译为-MDd-Zi并链接到一个共享库中
然后,用-CLR编译的一些托管C++代码获得指向<代码>某个东西的指针,并尝试从向量中读取。结果很不幸(参考文献不好)。在调试器中,
Something
看起来非常糟糕
显然,这不是真正的代码。一个包含两个DLL和一个main的自包含示例很难是“短”的。从各种阅读资料中,我了解到,在“现代”环境中,这应该是可行的。所以,我误读了,或者我需要一些选项调整。常见的情况是使用一个DLL,它是用标准C++库的早期版本(即旧版本)或不兼容的构建设置构建的。定义尤其重要。这些只是猜测,在这个问题上没有足够的信息。