Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 STL容器能否在托管代码和非托管代码之间共享?_Visual Studio 2010_Clr_Managed C++ - Fatal编程技术网

Visual studio 2010 STL容器能否在托管代码和非托管代码之间共享?

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_向量;

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_向量;
};
这段代码编译为-MDd-Zi并链接到一个共享库中

然后,用-CLR编译的一些托管C++代码获得指向<代码>某个东西的指针,并尝试从向量中读取。结果很不幸(参考文献不好)。在调试器中,

Something
看起来非常糟糕


显然,这不是真正的代码。一个包含两个DLL和一个main的自包含示例很难是“短”的。从各种阅读资料中,我了解到,在“现代”环境中,这应该是可行的。所以,我误读了,或者我需要一些选项调整。

常见的情况是使用一个DLL,它是用标准C++库的早期版本(即旧版本)或不兼容的构建设置构建的。定义尤其重要。这些只是猜测,在这个问题上没有足够的信息。