【发布时间】:2012-12-06 17:42:14
【问题描述】:
您好,我有一个使用 vs2008 编译的 32 位源代码可以正常工作。现在我正在尝试以 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'
有什么办法可以帮我摆脱它吗?
【问题讨论】:
-
什么是
EnumLangProc?错误信息显然与EnumLangProc有关。如果错误信息引用EnumLangProc,你必须记住发布EnumLangProc的声明。 -
看起来最后一个参数应该是
LONG_PTR而不是LONG。无论哪种方式,请确保EnumLangProc的声明与ENUMRESLANGPROC匹配
标签: c++ visual-studio-2008 visual-c++ 64-bit