2015-12-21 7 views
1

Попытка построить UltraDefrag.Как связать 64 исполняемых файла, требующих раздел rsrc и comctl32.dll?

Звучит довольно просто, но как только вы добавите rc.o в объекты ссылки вашего двоичного файла, он будет использовать 32-разрядную версию comctl32.dll, запускающую ошибку 0xc0000007 при запуске программы.

Это известная mingw64 ошибка, но так как ошибка не было ответов с 2011 года, мне нужен обходной путь для этого (программы должны не использовать cygwin.dll, поэтому я не могу использовать Cygwin).

Любые идеи?

+0

Если это известная ошибка, вы должны предоставить ссылку на то, где она известна. – jturney

+1

Это действительно общая проблема с инструментальной цепочкой MinGW-w64, вы должны иметь возможность создать простой тестовый пример, который демонстрирует его. – jturney

+0

@jturney: http://permalink.gmane.org/gmane.comp.gnu.mingw.announce/3311 – user2284570

ответ

1

Это может произойти, если application manifest явно указывает 32-разрядной версии стандартных элементов управления

т.е. манифест содержит

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

Вы должны изменить processorArchitecture на:

processorArchitecture="*" 

Если это является причиной вашей проблемы, это не ошибка MinGW-w64.

+0

ОК, действительно есть манифест, включенный по умолчанию в проект. – user2284570

+0

При попытке запустить 64-разрядное приложение с неправильным манифестом вы также можете получить сообщение об ошибке «Приложение не смогло начать правильно (0xc000007b). Нажмите «ОК», чтобы закрыть приложение. »И исключение« Необработанное исключение в 0x000007F8EE9C1E80 (ntdll.dll) в MyApp.exe: 0xC000007B:% hs либо не предназначено для работы в Windows, либо содержит ошибку. Попробуйте снова установить программу, используя исходный установочный носитель, или обратитесь за помощью к системному администратору или поставщику программного обеспечения. Состояние ошибки 0x.' – izogfif

 Смежные вопросы

  • Нет связанных вопросов^_^