これは興味深い問題です。私は、明らかに、ソースがない独占的なdllのセットを使って作業しています。目標は、独自のdllからの一連のファンクションコールをグループ化する中間dllを作成することです。私が持っている問題は、g ++でコンパイルすると、元のDLLの行に沿ってエラーが発生することです。 libname_NULL_THUNK_DATAをエクスポートできません。記号が見つかりません。別のdllにアクセスするdllをコンパイルするのに問題があります
実行ファイルにメインファイルを追加してコンパイルするだけで、すべてが正常に動作します。私はコンパイルのためにmingwを使用しています。助けてくれてありがとう。
最初の返信に応じて:あなたが言っていることについて私は混乱しているか、私は自分の質問をうまく言いませんでした。私は明示的にラッパーから何かをエクスポートしようとしていません、私はDLLから関数を呼び出すだけです。問題は、これらの特定のシンボルをDLLからラッパーにエクスポートできないというエラーが発生することです。問題は、これらの_NULL_THUNK_DATAシンボルが何であるか完全にはわからないということです。私は検索を行い、ウィンドウが使用する内部シンボルなので、エクスポートしないでください。私はリンカーに--exclude-symbolsディレクティブを使用しようとしましたが、何もしていないようです。あなたが何を言おうとしているのかを完全に誤解していたら謝ります。
私の問題はこれに関連していたと思います。ちょうど私が例えば関数を呼び出す直接ヘッダを含めるとすることができたDLLを使用して、標準の実行可能ファイルをコンパイルする場合:
#include :3rdparty.h
int main(){
dostuff(); // a function in the 3rdparty.dll
}
これは、コンパイルして罰金実行します。私はg ++コマンドでライブラリをリンクする必要がありました。 -sharedフラグを使用してリンクすると、これらのエラーが発生します(もちろんメインは削除されています)。私は、デフォルトでg ++がdllからすべてのシンボルをインポートしようとしているという事実と関係があると思います。私が理解できなかったのは、これがdllと実行可能ファイルの間で起こる理由です。私はGetProcAddress()を使ってやってみます。ありがとうございました!