0\' がアンロードされました 0x7519C602 で例外がスローされました ( 内): Microsoft C++ の例外: HRException (メモリの場所 0x065ACAD0)。 0x7519C602 で例外がスローされました ( 内): Microsoft C++ の例外: [rethrow] (メモリの場所 0x00000000)。 0x7519C602 で例外がスローされました ( 内): Microsoft C++ の例外: EEFileLoadException (メモリの場所 0x065AD048)。 '' (Win32): 'C:\Program Files (x86)\dotnet\shared\\5. 5\' が読み込まれました。 '' (CoreCLR: clrhost): 'C:\Program Files (x86)\dotnet\shared\\5. 5\' が読み込まれました。シンボルの読み込みをスキップしました。モジュールは最適化されていて、デバッグ オプションの [マイ コードのみ] 設定が有効になっています。 veloperExceptionPageMiddleware: Error: An unhandled exception has occurred while executing the request. File name: 'HogeWrapper, Version=1. 41445, Culture=neutral, PublicKeyToken=null' at (String data) at lambda_method2(Closure, Object, Object[]) この dImageFormatException は、x86(Win32)とx64を混在させた時などに起こるそうなのですが、 5. 10 million bugs in my code @nanoris : 間違ったフォーマットのプログラムを読み込もうとしました。 (HRESULT からの例外: 0x8007000B). 0のWeb API側もきちんとx86に縛っていて混在はしていません。 ググってもうまく日本語の情報が見つからず、仕方がないので苦手な英語のサイトを追い始めたところ、Stack OverflowでそのものズバリのQAがありました。 Bad image format when running managed C++/CLI assembly in Core 3. 1 これは Core 3. 1時代のものですが 5.

10 Million Bugs In My Code @Nanoris : 間違ったフォーマットのプログラムを読み込もうとしました。 (Hresult からの例外: 0X8007000B)

0も同様でした。C++/CLIのDLLを使う場合、DLLだけ持ってきてもダメで、同じ位置に出力される もDLLと同じ位置に持っていかないとダメだそうです。今回 Core系のC++/CLIを初めて使ったので、この辺りの常識を全く知りませんでした。 DLLは C:\Users\Segavvy\source\repos\Hoge\Hoge\bin\x86\Debug\net5. 0\ にあるので、同じ位置に を持っていったところ、無事にエラーが解消しました。以下、正常時の出力ウィンドウの抜粋です。DLLと同じ位置に置いた が読み込まれているのがわかります。 '' (Win32): 'C:\Users\Segavvy\source\repos\Hoge\Hoge\bin\x86\Debug\net5. 0\' が読み込まれました。 '' (CoreCLR: clrhost): 'C:\Users\Segavvy\source\repos\Hoge\Hoge\bin\x86\Debug\net5. 0\' が読み込まれました。シンボルが読み込まれました。 なお、最初に の動作確認を簡単なC#のコンソール アプリで実施した時につまずかなかったのは、同一ソリューション内にDLLのプロジェクトも入れて、プロジェクトの依存関係を結んで使ったためです。これならDLLの位置に もある形が維持されます。 別ソリューションからDLLの参照設定で使う場合は、今回のような注意が必要です。Debug/Releaseの切り替えなども考えると、手元にプロジェクト ファイルがある場合は同一ソリューションに入れてしまうのが正解みたいです。 Core系を初めて使っているので、誤りがあるかも知れません。正しい参照設定の方法がありそうな気もします。何かわかったら更新します。識者の方のアドバイスもお待ちしております。. NetCore3. 1向けC++/CLIを軽く試した感想 Why not register and get more from Qiita? We will deliver articles that match you By following users and tags, you can catch up information on technical fields that you are interested in as a whole you can read useful information later efficiently By "stocking" the articles you like, you can search right away Sign up Login

手元にある太古のCで書かれたWin32なスタティック ライブラリを、Visual Studio 2019で 5. 0を使ってWeb API化しようと思い立ち挑戦したところ、スタティック ライブラリをラップした C++/CLI のアセンブリを使うところで dImageFormatException: Could not load file or assembly 'HogeWrapper, Version=1. 0. 7796. 41445, Culture=neutral, PublicKeyToken=null'. 間違ったフォーマットのプログラムを読み込もうとしました。 のエラーでハマってしまったため、解決方法をメモしておきます。 10年以上前のVisual StudioでビルドされたWin32(x86)のスタティック ライブラリ を 5. 0で使うために、まず C++/CLI でラッパーのクラスライブラリのDLL を作成しました。元のLIBが64bit対応していないので、このDLLも32bit縛りです。 次にDLL単独の動作確認のため、同じソリューション内に 5. 0 C#のコンソール アプリのプロジェクトを作って、ソリューション内のDLLのプロジェクトと依存関係を結んで実行したところ、うまく使うことができました。 そして最後に、別のソリューションで 5. 0 C#のWeb APIプロジェクトを作り、 を参照設定しました。これで間接的に の機能が呼び出せるようになります。ビルドまでは順調でした。 しかし、実行時にハマりました。以下、Debug実行時の出力ウィンドウの途中部分なのですが、せっかくロードした がすぐにアンロードされてしまい、例外 dImageFormatException がスローされてしまいます。 '' (Win32): 'C:\Users\Segavvy\source\repos\Hoge\Hoge\bin\x86\Debug\net5. 0\' が読み込まれました。シンボルが読み込まれました。 '' (Win32): 'C:\Windows\SysWOW64\' が読み込まれました。 '' (Win32): 'C:\Windows\SysWOW64\' がアンロードされました '' (Win32): 'C:\Users\Segavvy\source\repos\Hoge\Hoge\bin\x86\Debug\net5.

Sitemap | xingcai138.com, 2024

[email protected]