【发布时间】:2012-10-31 16:00:12
【问题描述】:
我不确定这是否是个问题,但肯定是出于好奇。我有一个 C DLL,它导出一个采用 32 位整数和一个布尔值 (stdbool.h) 的函数。导出的函数(stdcall)表示参数列表为8字节(4字节int,4字节bool)。此 C DLL 还包含一个使用布尔值的结构。检查 sizeof(bool) 表示 1 字节布尔值。
我有一个用于本机 DLL 的 .Net 包装器。在编组结构时,我为每个布尔字段 UnmanagedType.U1 指定并且一切正常,一切都正确对齐。我只使用了顺序布局,没有显式,也没有任何偏移,也没有任何包装。
我的问题是,为什么布尔大小有明显的差异?
【问题讨论】:
-
DLL 是用什么编译器制作的?