应用程序仅在 64 位版本上出错

Application gives error only on 64 bit version

如果是 32 位版本,我的应用程序 运行 运行良好,但是当我将新的 64 位平台添加到配置管理器并尝试 运行 它时,我收到以下消息启动:

阅读后64bit manifest problem / side by side issue我得出结论,问题出在清单行

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")

所以我添加到分支它,以平台为条件:

#ifdef _WIN64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif

因此,我将其添加为通用的,独立于平台:

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

注意 processorArchitecture 值的差异。

现在一切正常!