問題タブ [stdcall]

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 投票する
0 に答える
231 参照

json - TJSONObject ToString メソッド アクセス違反

TJSONObject を返す dll 関数を呼び出します。問題は、この値をTStringListアクセス違反例外に追加しようとすると発生することです。これが私のコードです:

そして、これは示されているエラーです:Exception class $C0000005 with message 'c0000005 ACCESS_VIOLATION'

0 投票する
1 に答える
2628 参照

assembly - ASM Function Call & Ret - ret 0xC は何をしますか?

ret は何をしますか? ここで ret 0xC が必要なのはなぜですか? ret 0xC または 0x4 ではなく、単に ret であった場合はどうなるでしょうか。

0 投票する
1 に答える
5716 参照

c# - stdcall 呼び出し規則と C# での pinvoke の使用

以下の 2 つの空の関数を含む DLL ファイルを作成しました。

C# では、DLLImport以下のように属性を使用して関数を呼び出すことができました。

そのため、属性LoadLibrary()の代わりにkernel32.dllを直接使用して再試行しました。DllImport

ただし、 MyFunc2()が機能する場所で MyFunc1( ) を呼び出すと、ランタイム エラーが発生します。

そこで、C++ で置き換え__stdcall__cdeclDLL を再コンパイルしてから、C# で MyFunc1() を再度呼び出しました。

そして..うまくいきました。

いったいなぜ __stdcall 呼び出し規約が C# の pinvoke で機能しないのですか?

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

c - __STDCALL と混同

exe から dll と通信しようとしていますが、dll に WINAPI を追加すると、GetProcAddress() の呼び出し中に NULL 値が返されます。

サンプルコードは次のとおりです。

EXE:

DLL:

ヘッダー ファイル:

ソースファイル:

同じコードを WINAPI 呼び出しなしで実行すると、GetProcAddress() で NULL 以外の値が取得されます。

誰でもこれで私を助けることができますか?

ありがとう。

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

c++ - kernel32、user32 などの任意の関数を動的に呼び出す

IDE: Code::Blocks コンパイラ: g++ 4.5.4 (Mingw32_i686 から) タイプ アプリケーション: コンソール タイプ

Ok

コードを示しますが、期待どおりに動作しません。このコードは私の欲求を示すはずです。

4 つのラッパー関数を使用して winapi 関数を発生させたいと考えています。

F- 関数は何も返さず、入力パラメータもありません

F_- 関数は何も返さないが、入力パラメータを持っている

_F- 関数は値を返しますが、入力パラメータがありません

_F_- 関数は値を返し、入力パラメータを持ちます

コンパイル時ではなく、関数の戻り値の型とランタイム関数に渡されるパラメーターの型を定義したいと考えています。

もちろん、コンパイル時に関数に渡されるパラメーターの数も決定したくありません。

何か案は?これは可能ですか?

更新:

ありがとうロドリゴ

libffi 3.0.6 win32 (テスト コンソール アプリケーションで libffi.dll.a とヘッダー ファイルを使用) をダウンロードしましたが、「libffi-5.dll が見つかりません」という警告が表示されました。

http://rpm.pbone.net/index.php3/stat/4/idpl/24142309/dir/fedora_16/com/mingw32-libffi-3.0.9-2.fc15.noarch.rpm.htmlをダウンロードし、解凍しました、C:\Mingw32\bin にこの .dll のコピーである libffi-5.dll が見つかりました。

テストのコード:

はい!私は働くコードを持っています!

私はこの問題を引き続き研究します。