問題タブ [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.
c++ - 構造体を使用するためのgetprocaddressの同様の機能?
Windows32 アプリケーションにインポートするゲームの DLL があり、正常にロードされ、かなりの数の関数が呼び出されました。ただし、使用する必要がある特定の関数の問題に直面しており、それに構造体を渡す必要があります。
DLL を逆アセンブルすると、構造体と構造体のデータ型を確認できるようですが、この構造体をどのように使用すればよいでしょうか?
私の知る限り GetProcAddress は機能しませんか?
この構造体を使用する方法を探しています。
c++ - 複数の引数への関数ポインタ C++11 std::function: GetProcAddress のテンプレート化
GetProcAddress を呼び出す別の関数によって指定された FARPROC アドレスから関数インスタンスを返そうとしています。面白い問題が出てきました。関数は次のとおりです。
後で、問題なく入力なし関数を作成します。
ただし、関数が入力を受け取ると、Visual C++ 11 コンパイラが爆発します。
それは正当に返します:
エラー C2197: 'int (__stdcall *)(void)': 呼び出しの引数が多すぎます
問題の型は、関数の引数リストに関係なく、GetProcAddress によって返されるものである FARPROC と同等です。
私の質問は、要するに、to_function の単純な関数プロトタイプを指定して、FARPROC を std::function の適切な型にキャストすることによって、この問題をどのように回避するかということです。事前に乾杯。
getprocaddress - ミニフィルタープログラムで未定義のGetProcAddress
私はミニフィルタープロジェクトに取り組んでいます。ミニフィルタープログラム内でGetProcAddressを呼び出すにはどうすればよいですか?私のコンパイラは「GetProcAddressundefinedassumeexternreturningint」と言い続けます。msdnによると、window.hを含める必要があるかもしれません。しかし、そうすると、他の多くのコンパイラエラーが発生しますか?何をすべきですか?
windows - Windows 7 で LoadIconWithScaleDown の GetProcAddress が失敗する
次のコードを使用してLoadIconWithScaleDown API に動的にリンクし、コードを Windows XP で実行できるようにしています。
Windows 7 でこのコードを試してみましたが、「pfnLoadIconWithScaleDown」は常に NULL です。なんで?
dll - Embarcadero C ++ BuilderXE3DLLをEmbarcaderoC++BuilderXE3にインポートする
Embarcadero C ++ Builder XE3でDLLを作成し、同じ環境のテストプロジェクトで使用しようとしています。
コードで良い結果が得られないチュートリアルの例を取り上げます(!):http ://docwiki.embarcadero.com/RADStudio/XE3/en/Tutorial:_Using_Dynamic_Linked_Libraries_in_C%2B%2BBuilder_Applications
これが私のDLLの内容です:
BaseAuth.hファイル:
Auth.hファイル:
Auth.cppファイル:
およびFile1.cpp:
今テストアプリケーションで私は持っています:
同じBaseAuth.hファイル
ボタン付きのフォーム:
Test_DLLAuthOrga.h:
Test_DLLAuthOrga.cpp:
結果は次のとおりです。
ポインタmpAuthにはアドレスがあります。
しかし、そのメソッドにはアドレスがなく、「void TestMessage()」などの単純なメソッドを呼び出すと、アクセス違反が発生します。
=>最初は文字列の互換性の問題のようでした(ただし、「C++BuilderXE3」と「C++BuilderXE3」の間では同じ文字列形式が使用されると思いますか?!):UnicodeDelphiでDLLを呼び出すときにエラーが発生しました
=>同様の問題が見つかりましたが、C ++DLLをDelphiに変換し、C ++DLLをC++に変換しませんでした...:DelphiアプリでC++DLLを呼び出します
=>「HINSTANCEload;」の代わりに「HMODULE」を使用してみました。:同じ結果。
=>使用して成功せずに試しました
それ以外の :
=>また、「__stdcall」を「__cdecl」または「」(削除)に置き換えてみました。librayはロードされますが、GetProcAdressはNULLを返します。
=> DLLのメソッド「TestMessage()」を呼び出そうとして、何が間違っているのでしょうか。
windows - シンプルな Winelib DLL をビルドしてオーバーライドする
ライブラリをロードする Windows 実行可能ファイルがあり、Windows DLL をオーバーライドする Winelib DLL を作成したいと考えています。検索して試してから2日経ちましたが、うまくいきません!私を助けてください !
基本的に、次のコマンドで Winelib DLL をビルドするために mydll.c と mydll.spec を作成します。
現在、mydll.dll.so があり、 mydll.dllをオーバーライドしたい(どちらも同じ場所にあります) どうすればよいですか? mydll.dll の名前を変更しようとしましたが、関数が呼び出されたときに Page Fault が発生しました。また、winecfg でオーバーライドを構成するか、WINEDLLPATH などの環境変数を設定しようとしました。進め方がわかりません。
Windows 実行可能ファイルにライブラリをロードする方法
mydll.spec
mydll.c
c++ - dllメソッドにアクセスするときのアクセス違反読み取り場所
次のコードを使用して dll ファイルのメソッドにアクセスしていますがAccess violation reading location 0x41100000
、dll メソッドからメソッドを呼び出すとエラーが発生します。
アクセスしようとしているメソッドは、次のプロトタイプです
これは私のコードです
理由は何ですか?dllファイルにエラーがある可能性はありますか? dll ファイルのパラメータを読み取る方法はありますか? それを分析して、パラメーターの型が正しいかどうかを確認しますか? 依存性チェッカーはメソッドが存在することを示していますが、引数の型を確認できませんか?
アップデート:
私はまだエラーが発生しています
test.exe の 0x0040356c での初回例外: 0xC0000005: アクセス違反書き込み場所 0x42080000。Cexperiment.exe の 0x0040356c で未処理の例外: 0xC0000005: アクセス違反の書き込み場所 0x42080000。
また、この問題は呼び出し規約に関連していない可能性があると考えています.VS2010から、呼び出し規約が原因である可能性があるというエラーメッセージが表示されないためです.他のものを使用しようとしたときにそのメッセージが表示されました. dll. したがって、呼び出し規則またはパラメーターが問題でない場合 (パラメーターが異なる場合、同じ呼び出し規則メッセージが表示されます)、それは別のものである可能性があります。私が試すことができることについて何か提案はありますか?