一个 32 位主机 Windows 应用程序设置共享内存(使用内存映射文件 / CreateFileMapping() API),然后其他 32 位客户端进程使用此共享内存相互通信。
我计划将主机应用程序移植到 64 位平台,一旦准备就绪,我打算 32 位和 64 位客户端进程都应该能够使用主 64 位主机应用程序设置的共享内存。
为主机 x32 应用程序编写的原始代码几乎在所有地方都使用“size_t”,因为当我们从 x32 移动到 x64 时,它从 4 字节到 8 字节不同,我正在寻找替换它。
我打算将“size_t”替换为“unsigned long long”,这样它的大小在 32 位和 64 位上将相同。
你能建议我更好的选择吗?另外,使用“unsigned long long”会对x32应用程序产生性能影响..我想是的?
研究完成 - 发现非常有用的文章 - a) 从 32 位移植到 64 位的 20 个问题 (www.viva64.com) b) 无法使用编译器标志或任何挂钩将 x64 平台上的“size_t”限制/更改为 4 个字节/crooks 因为它是 typedef