如何 link 需要 rsrc 部分和 comctl32.dll 的 64 位可执行文件?

How to link a 64 executable that require an rsrc section and comctl32.dll?

正在尝试构建 UltraDefrag。

听起来很简单,但是一旦您将 rc.o 添加到二进制文件的 link 对象,它将使用 32 位版本的 comctl32.dll 触发 0xc0000007 错误在程序启动时。

这是一个已知的 mingw64 错误,但由于该错误自 2011 年以来一直没有回复,我需要解决此问题的方法 (该程序不需要使用 cygwin.dll,所以我可以' t 使用 cygwin).

有什么想法吗?

如果 application manifest 明确指定通用控件的 32 位版本

,就会发生这种情况

即清单包含

<dependentAssembly>
<assemblyIdentity
    type="win32"
    name="Microsoft.Windows.Common-Controls"
    version="6.0.0.0"
    processorArchitecture="x86"
    publicKeyToken="6595b64144ccf1df"
    language="*"
/>

您需要将处理器架构更改为:

processorArchitecture="*"

如果这是您问题的原因,则这不是 MinGW-w64 错误。