【问题标题】:_WIN64 is not defined in x64 project_WIN64 未在 x64 项目中定义
【发布时间】:2012-08-13 05:25:51
【问题描述】:

我正在使用 VS2008 并且项目属性设置为 (active) x64

奇怪的是 _WIN64 没有定义,WPARAM 和 LPARAM 仍然是 32 位的。

我应该手动定义_WIN64吗?

如果是这样,我应该把#define _WIN64放在哪里?预处理器设置似乎不起作用。

我很确定它被编译为 x64,因为在任务管理器中,exe 没有 *32 后缀。

【问题讨论】:

  • 我在 vs2010 中测试过。 _WIN64 已定义。请检查您的项目配置。

标签: c++ api winapi 64-bit


【解决方案1】:

问题是,

_WIN64 已由编译器定义,但 IDE 无法识别。 (在 VS2010 中似乎已修复。)

sizeof(WPARAM)和sizeof(LPARAM)的值都是8(不是4)

IDE 以灰色显示 *ifdef _WIN64* 块中的代码,就好像它们处于非活动状态一样,而实际上不是。

http://bugs.python.org/issue1558

【讨论】:

  • 我在 VS2010 中仍然看到 IDE 问题
  • 我仍然可以看到问题 VS2019 _WIN64 not defined
【解决方案2】:

根据微软的说法,在 VS2008 中,您应该在预处理器定义中自行设置 - 用于调试和发布版本 - 看看 here

【讨论】:

  • 是的,我实际上阅读了这篇文章并添加了_WIN64,但没有奏效。这是命令行: /Od /D "_WIN64" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"x64\Debug\\" /Fd"x64\Debug\vc90.pdb " /W3 /nologo /c /Zi /TP /errorReport:prompt
  • 嗯,设置后你会重建吗?我不确定VS会自动执行它,我认为它是必需的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多