0

dllとLIBを作成したい。このdllは別のCPPdllに静的にリンクされているためです。だから私はlibファイルを持っている必要があります。

delphi4のIDEを使用しています

4

2 に答える 2

3

Delphiで作成されたC++DLLを(その逆に)使用するのは非常に簡単ですが、単純なルールに従う必要があります。C++プロジェクトでDelphiDLLを使用しようとしていると仮定します。

  1. 同じ呼び出し規約を使用する必要があります。デフォルトでは、Delphiはレジスタ規則(C ++用語では__fastcall)を使用します。すべてのWindowsDLLのデフォルトの呼び出し規約は__stdcallであるため、最初にDelphiソースファイルの関数宣言を次のように変更します。

    関数DoSomething(x、y:整数):整数; stdcall ;

  2. __stdcallを使用する場合、C ++は、DLL内のエクスポートされた関数に、渡されるパラメーターの全体的なサイズを指定する名前とそれに続く接尾辞が付いていることを想定しています。したがって、整数のサイズが4バイトであり、.dprファイルのエクスポートセクションが次のようになっていることを考慮すると、DoSomethingルーチンはDoSomething@8になります。


    DoSomething'DoSomething@8'をエクスポートします

  3. 関数宣言を使用してC++ヘッダーを作成し、それをC++プロジェクトに含めます。

    int __ declspec(dllimport)__ stdcall DoSomething(int x、int y);

  4. C++BuilderまたはVisualC++を使用する場合は、インポートライブラリ(.lib)を作成するimplibユーティリティを利用してください。同じことを行うことができるVC++に付属しているlibツールもあります。次に、.dllではなくその.libファイルにリンクします。

于 2010-08-06T11:26:02.430 に答える
2

いいえ、Delphiはlibファイルを生成しません。それは彼らには役に立たない。

DLLからlibファイルを作成する方法があります。たとえば、Delphiのバージョンに付属している場合は、implibを使用できます。

于 2010-05-13T16:16:36.627 に答える