2

管理者としてアプリを実行するためのこのマニフェストの何が間違っていますか?32ビットでは正常に動作しますが、64ビットのexecで使用すると、起動時にエラーが発生し、シャットダウンします。「アプリケーションを正しく起動できませんでした(0xc000007b)。[OK]をクリックしてアプリケーションを閉じます。」

編集:将来の参考のために、質問は解決されて閉じられました:

両方の32/64ビットのマニフェストが機能している場合は、プロジェクトオプション/アプリケーション/ランタイムテーマ/カスタムマニフェスト->.manifestファイルを選択して追加します。Delphi XE2リソースコンパイラは、何らかの理由で他の方法で混乱しているようです。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
        <dependency>
                <dependentAssembly>
                        <assemblyIdentity
                                type="win32"
                                name="Microsoft.Windows.Common-Controls"
                                version="6.0.0.0"
                                processorArchitecture="*"
                                publicKeyToken="6595b64144ccf1df"
                                language="*"
                        />
                </dependentAssembly>
        </dependency>
        <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
                <security>
                        <requestedPrivileges>
                                <requestedExecutionLevel
                                       level="requireAdministrator"
                                       uiAccess="false"/>
                        </requestedPrivileges>
                </security>
        </trustInfo>
</assembly>
4

1 に答える 1

3

あなたの問題はあなたのマニフェストとは関係ありません。空のアプリケーションを作成し、マニフェストをカスタムマニフェストとして追加することで、これが正しいことを確認できます。

エラーコード0xc000007bは、64ビットプロセスが32ビットDLLから関数をインポートするときに取得するものであり、これが問題の最も妥当な説明です。Dependency Walkerを使用して、32ビットDLLによって解決されているインポートを確認します。

于 2012-06-24T11:40:43.107 に答える