問題タブ [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.
c++ - QtConcurrent::run() は __stdcall/WINAPI 関数を受け入れません
__stdcall
を使用して呼び出し規則を持つ DLL 関数を実行しようとしましたがQtConcurrent::run()
、コンパイル エラーが発生します。
問題を次のコード例に減らしました。
コードを削除する__stdcall
と、コンパイルして正常に実行されます。そうしないと、次のコンパイル エラーが発生します。
なぜこのようなことが起こるのでしょうか? また、最善の回避策は何ですか?
c++ - QT - サードパーティのコールバック コールバックしない?
私が使用しているサードパーティのライブラリ用のテスト アプリケーションを作成しました。コンパイルは問題なく行われますが、__stdCall WriteDone にはヒットしないようです。
サンプルコードから、この関数のように見えます
このコードを呼び出しますが、私の知る限りでは、ここに到達することはありません。
これはテストアプリケーション全体です
c++ - GNU inline asm: __stdcall によって破壊されるレジスタはどれですか?
call
C++ コードで GNU のインライン アセンブラを介して命令を使用して、__stdcall
規則を使用していることがわかっている関数を呼び出す場合、すべてのレジスタを clobbered としてリストする必要がありますか?
私はインターネット上で優れたガイダンスを見つけていませんが%eax
、 、%edx
、およびのように見えます%ecx
が、前の 2 つは戻り値用に予約されています。
これが私のコードです。3 番目のコロンの後に何を入力する必要があるか知りたいです。
このメッセージ スレッドは、インターネット上で見つけることができる最高のものですが、「これは、__stdcall
保存せずに変更できることを前提としています」というものを見つけることができませんでした...
c - Delphi/Free Pascal/Lazarus DLL の C ヘッダーの作成方法 - データ型
私のアプリケーションでは、stdcallを使用して、Delphi から DLL を作成する必要があります (より正確には、Lazarus IDE 内で記述された Delphi 互換コードであり、Linux でフリー パスカルによってコンパイルされます) 。
その DLL を (たとえば、Matlab などで) 使用する場合、もちろん、引数を渡すためのメタ情報が必要です。多くの場合、ヘッダー ファイルで実現されます。Delphi ソース コードで実行するツールを探しています。-リバースのようなh2pas
もの。
私の研究では結果が得られませんでした。私が思うに、そのようなツールはありません。表またはその他の情報、Delphi/Pascal データ型が C 型にどのようにマッピングされるか、およびレコードを操作する方法を見つけたいと思います。