2021年4月26日月曜日

アプリケーションを正しく起動できませんでした(0xc000007b) Visual Studio 編

アプリケーションをビルドして実行しようとしたら、突然「アプリケーションを正しく起動できませんでした(0xc000007b)」と言われて、アプリケーションが実行できなくなりました。

バージョン管理システムで、プロジェクトを別ディレクトリに展開したばかりで、どこかプロジェクトの設定に問題がありそうですが、なかなか原因がわかりませんでした。


原因は、リソースのRT_MANIFEST/IDR_MANIFESTにありました。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<assemblyIdentity 
    version="1.0.0.0" 
    processorArchitecture="*" 
    name="Microsoft.Windows.GisMaintenance"
    type="win32" 
/> 
<description>アプリケーションの説明をここに挿入します。</description> 
<dependency> 
    <dependentAssembly> 
        <assemblyIdentity 
            type="win32" 
            name="Microsoft.Windows.Common-Controls" 
            version="6.0.0.0" 
            processorArchitecture="x86" 
            publicKeyToken="1234a56789bcdeff" 
            language="*" 
        /> 
    </dependentAssembly> 
</dependency> 
</assembly>

processorArchitecture="x86" とありますが、プロセッサ変わる事があるので
processorArchitecture="*" に変更します

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<assemblyIdentity 
    version="1.0.0.0" 
    processorArchitecture="*" 
    name="Microsoft.Windows.GisMaintenance"
    type="win32" 
/> 
<description>アプリケーションの説明をここに挿入します。</description> 
<dependency> 
    <dependentAssembly> 
        <assemblyIdentity 
            type="win32" 
            name="Microsoft.Windows.Common-Controls" 
            version="6.0.0.0" 
            processorArchitecture="*" 
            publicKeyToken="1234a56789bcdeff" 
            language="*" 
        /> 
    </dependentAssembly> 
</dependency> 
</assembly>

古いプロジェクトだと、x86 が入っていたりするので、注意が必要です。書いとかないと、同じ事が起こった時にまた調べる事になりそうで・・・

0 件のコメント: