使用VS C++ 默认项目模板生成的项目,通常包含Rlease/Debug两种配置。在默认设置下的两种配置编译出的Dll库的数据对齐方式不一样,可能接口在传递字符串、类时发生各种内存错误。
解决方法
那么如何在Debug下与Release下使用相同的内存对齐方式?最简单的解决方案如下:
- 打开项目设置。
C/C++>预处理器>预处理定义,去掉_Debug宏。C/C++>代码生成>运行库,选择多线程DLL(/MD)。
内存未对齐的常见错误表现
- 传递
字符串数据时,直接出现内存错误。 - 传递
数据结构或类时,出现数据变化。