gpt4 book ai didi

c++ - C2664 : while compiling in 64bit

转载 作者:太空宇宙 更新时间:2023-11-04 15:06:28 25 4
gpt4 key购买 nike

您好,我有一个源代码在使用 32 位 vs2008 编译时运行良好。现在我正在尝试在 64 位中编译相同的源代码。对于这段代码:

if(EnumResourceLanguages(gHResources, RT_STRING, MAKEINTRESOURCE(1),EnumLangProc, 0) && (0 < gNumSupportedLangs))

我收到以下错误:

Error: error C2664: 'EnumResourceLanguagesA' : cannot convert parameter 4 from 'BOOL (__cdecl *)(HMODULE,LPCTSTR,LPCTSTR,WORD,LONG)' to 'ENUMRESLANGPROCA'

有什么可以帮助我摆脱它的吗?

最佳答案

回调的第 4 个参数定义为 LONGEnumResLangProc 需要 LONG_PTR 作为第四个参数。这是代码中的一个错误,但在 32 位中 LONGLONG_PTR 的大小相同(4 字节),因此可以正常编译。在 64 位中,LONG_PTR 的长度为 8 个字节,因此会出现错误。更改您的回调签名以接受 LONG_PTR 作为第 4 个参数,它将针对 32 位和 64 位进行编译。

关于c++ - C2664 : while compiling in 64bit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13749365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com