私のアプリケーションと統合するために、C++ DLLと関連するヘッダーファイルが提供されています。まずは単純なWin32コンソールアプリケーションからDLLを呼び出そうとしています(Visual Studio 2008 Expressを使用しています)。C++ - 第三者DLLへのリンク - 断続的なアクセス違反
私は、DLLをプロジェクト設定の追加の依存関係として指定してリンクしました。
インターフェイス(つまり、エクスポートされた関数のみ)は、実際に呼び出す必要のあるクラスのインスタンスへのポインタを返します。私は正常にこれを呼び出し、ポインタを取得し、私が必要とする最初の関数( "init"関数)を呼び出すことができます。
私が必要とする処理を実際に実行する関数を呼び出すとき、私は断続的に「0xC0000005:アクセス違反の読み込み中....」というエラーが発生しています。つまり、私はプログラムを実行します。正常に動作し、終了します。何も変更せずに、すべてのパラメータがハードコードされていて、再度実行しようとします。
私は一貫して問題を再現することはできませんが、DLLが正しくアンロードされていないと思われるようになっています。エラーを一度受け取り、DLLを削除しようとしました。それが使用されていたWindows。それは、別の機会に私はエラーを取得した後にDLLを削除することができた、それをコピーして、次の実行時にエラーが発生したと言いました。
私の.exeが終了したらDLLを正しくアンロードする必要がありますか? DLLを暗黙的にロードするのではなく、明示的にロード/アンロードする方が良いでしょうか?
他のヘルプやアドバイスは非常に高く評価されています。
これは非常に一般的な質問です。コードや文書を投稿することはできますか? – Tim
これはデバッガで発生しますか?あるいは、それが起こったときに、デバッガを接続してコールスタックを調べるのはなぜですか? – MSN