Eri*_* H. 5 c++ windows dll stl visual-studio
好的.....我已经完成了相关问题的所有阅读,以及一些MSDN文章,以及大约一天的谷歌搜索.
这个问题的当前"最新状态"回答是什么:
我正在使用VS 2008,C++非托管代码.我有一个包含相当多DLL和很多EXE的解决方案文件.只要我完全控制构建环境,使得所有的部件和部件都使用相同的标志构建,并使用相同的运行时库,并且没有人拥有静态链接的CRT库,我可以传递STL对象吗?
看起来这应该没问题,但根据您阅读的文章,有很多恐惧,不确定性和怀疑.
我知道在幕后产生静态数据的模板有各种各样的问题(每个dll都会得到自己的副本,导致心痛),但是常规旧STL怎么样?
我们成功地在应用程序中传递由数十个 DLL 组成的 STL 对象。为了确保它有效,我们在每次构建时运行的自动化测试之一是验证所有项目的设置。如果添加新项目并对其进行错误配置,或者破坏现有项目的配置,则构建会失败。
我们检查的设置如下。请注意,并非所有这些都会导致问题,但我们会检查它们的一致性。
#定义
_WIN32_WINNT
STRICT
_WIN32_IE
NDEBUG
_DEBUG
_SECURE_SCL
Run Code Online (Sandbox Code Playgroud)
编译器选项
DebugInformationFormat
WholeProgramOptimization
RuntimeLibrary
Run Code Online (Sandbox Code Playgroud)