memory-alignment - 如果 EXE 和 DLL 的内存对齐方式不同怎么办?

标签 memory-alignment

在 VC 中,我有一个 DLL 文件,其内存对齐设置为 1,还有一个 EXE 文件内存对齐设置为默认值(为 4)。我在 EXE 中使用这个 DLL 的类。不同的内存对齐设置是否存在潜在风险? 非常感谢!

最佳答案

我假设“内存对齐”是指“结构打包”(/Zp)。是的,如果您的结构需要填充来实现指定的对齐方式,则可能会出现问题,因为两个模块的填充方式不同。

关于memory-alignment - 如果 EXE 和 DLL 的内存对齐方式不同怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12453783/

相关文章:

c# - 为 PInvoke 正确声明 SP_DEVICE_INTERFACE_DETAIL_DATA

c++ - std::condition_variable 的内存位置可能导致 futex 错误

C 未定义的行为。严格的别名规则,还是不正确的对齐方式?

c++ - 使用 Eigen 和 std::vector 的 SIGSEGV

C++ 编译器对齐 - 仅字符无填充

visual-studio-2012 - 为什么 vtable 指针在 x86 编译程序上对齐到 8 个字节?

c++ - 与 STL vector 对齐分配

linux - 如何模拟ARM未对齐的内存访问异常?

c - "double"类型是否需要 8 字节对齐?

arm64 上的 Linux : sendto causes "Unhandled fault: alignment fault (0x96000021)" when sending data from mmapped coherent DMA buffer