您好我有一个源代码在32位编译使用vs2008时工作正常。现在我正试图在64位编译相同的源代码。对于这段代码:C2664:在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的声明。 – AnT
它看起来最后一个参数应该是'LONG_PTR'而不是'LONG'。无论哪种方式确保'EnumLangProc'的声明符合['ENUMRESLANGPROC'](http://msdn.microsoft.com/en-us/library/windows/desktop/ms648033 \(v = vs.85 \).aspx) – user786653