2016-07-06 3 views
-1

OpenGLとGStreamerでアプリケーションを作成しようとしています。私はGStreamerライブラリにリンクしているファイルをいくつか持っていますが、今のところ、メインソースファイルには含まれていません。プログラムはうまくコンパイルが、実行時に、私はVisual Studio 15:既存のファイルをプロジェクトに追加した後の0xc000007b

アプリケーションが正しく(0xc000007b)を起動することができませんでしたエラーメッセージが表示されます。

私はこのエラーについての情報はありません。

しかし、プロジェクトからGStreamer関連のファイルを除外すると、プロパティページのインクルードディレクトリとライブラリディレクトリをそのままにしておくと、コードはコンパイルされて問題なく実行されます。

私はWin32プラットフォーム用にビルドしており、GStreamerライブラリの正しいバージョンにリンクしていることを確認しました。

さらに、x64用のビルドを実行しようとすると(正しくリンクされていると思いますが)、プロジェクトからファイルが除外されていても全く同じエラーが表示されます。

このスパース情報から何が間違っているのか、または使用されていないファイルを追加したときにアプリケーションが実行されない理由を説明できますか?

私は、より多くの情報を提供するかもしれませんが、今は関連性がありません。

+1

デバッガを起動してクラッシュの原因を確認するまでの時間。 –

+2

おそらく、32ビットアプリケーションから64ビットDLLをロードしている可能性があります。これはビルドプロセスとは関係がありません。ビルド時にすべての適切なライブラリを指定できますが、それは問題ではありません。これは、DLLの検索と検索を担当するWindows OSであり、探している名前が一致していれば、DLLが間違っているかどうかは気にしません。 [これを見る](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586%28v=vs.85%29.aspx) – PaulMcKenzie

+0

@Jesperこれは最も合理的だと思われるが、アプリケーションエラーが表示される前に起動されていません。私はmain()関数の最初の行でreturn文を実行しようとしました。 – TheVaffel

答えて

1

PaulMcKenzieの提案によれば、WindowsはPATH内のディレクトリを検索し、64ビットプラットフォーム用に構築されていても最初のdllを採用していました。

x64で実行したときのエラーの原因は、公開GitHubリポジトリからダウンロードした他のdllファイルが32ビットソフトウェア用にビルドされていることが判明しました。

関連する問題