問題タブ [getprocaddress]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2627 参照

c++ - C++ GetProcAddress() は静的クラスのメソッドを見つけることができません

C++ で dll を動的にロードする必要があります。

このチュートリアルhttp://msdn.microsoft.com/en-us/library/ms235636.aspxに従ってdll を作成すると、すべて正常に機能しました。

次に、このhttp://msdn.microsoft.com/en-us/library/64tkc9y5.aspxに従い、コンソール アプリケーションを次のように調整しました。

DLL は正しく読み込まれ、null ではありません。問題は、常に 0 を返す GetProcAddress() 関数です。

名前空間、クラス名、メソッド名のすべての組み合わせを試しました。関数名の @ の代わりにスコープ演算子 (::) を使用しようとしました。

名前空間全体を extern "C" として定義しようとしましたが、何も変わりません。コンソール アプリケーションを実行またはデバッグするたびに、「乗算」機能が見つかりません。

私は何かが足りないと思います...どこが間違っていますか?


編集

Dependency Walker により、次のエクスポート テーブルが公開されました。

DLL エクスポート テーブル

ここで、関数名の最後の部分が何を意味するのだろうか... __declspec(dllexports) がこれらのシンボルを追加するのはなぜですか?

0 投票する
2 に答える
110 参照

c++ - C++ で DLL を作成して VS 2005 に C++ DLL をインポートする

C++ DLL を、これから作成する新しい C++ DLL にリンクしようとしています。

以下のチュートリアルと他の多くのチュートリアルを順を追って実行しましたが、「GetProcAddress」関数が NULL を返す「http://www.dreamincode.net/forums/topic/118076-dlls-explicit-linking/

これは、DLL から呼び出そうとする関数のプロトタイプです。

int RemoveAllDataFile( unsigned int id );

関数は 1 を返すため、DLL は正常にロードされます。

}

0 投票する
0 に答える
173 参照

c++ - 実行時にサードパーティ ライブラリ dll からクラスをロードして使用する方法

いくつかの dll (つまり、Qt フレームワークの dll) があり、実行時にそれを読み込んで使用したいと考えています。私はそれをロードする方法を知っています -LoadLibraryこの dll へのハンドルを取得しました。しかし、次は何ですか?たとえば、このライブラリ内にあるクラスを使用したい場合、QStringどうすればエクスポートできますか? それはまったく可能ですか?

0 投票する
2 に答える
1331 参照

c++ - 装飾された C++ 関数を C++ にインポートするための GetProcAddress

Visual C++ 2013 で、「プラグイン」プロジェクトから関数をエクスポートしようとしています。

これは、「アプリケーション」プロジェクトによって実行時にリンクされる動的 dll にコンパイルされます。まず、関数ポインター型を定義します。

次のように使用されます。

ただし、GetProcAddressNULL を返します。

C 関数を ( を使用して) エクスポートextern "C"し、 を使用して同じ DLL からインポートできることを確認できGetProcAddressますが、C++ 関数のインポートに失敗します。たとえば、これは機能します:

それから

だから私の推測では、registerFactories. C++ の型を扱う必要があるため、理想的には なしでこれを行いたいと考えていますexport "C"

dumpbin.exe見えるものは次のとおりです。

ファイル examplePlugin.dll のダンプ

ファイルの種類: DLL

編集 :

registerFactoriesは に付ける名前ではありませんGetProcAddress。マングルされた名前を bindump から手動でコピーします。例:

できます!したがって、以下の回答の多くは、実行時にこのマングルされた名前を発見することに関連しています。