2

私の Delphi コードでは、次のプロトタイプを使用して DLL の関数 (Visual C で記述) を呼び出す必要があります。

int PWFunc(LPCSTR szName, int nWidth, int nHeight, LPCSTR szFileName)

Delphi AnsiString 変数 (Name および FileName 用) を関数呼び出しの正しい型パラメータ (LPCSTR szName および szFileName) に変換するにはどうすればよいですか? VC LPCSTR 型が Delphi の PAnsiChar 型に対応することはわかっていますが、AnsiString を PAnsiChar に変換する正しい手順は何ですか?

4

1 に答える 1

2

LPCSTRLPSTR対応してPAnsiCharいるので、それを使用します。

function PWFunc(szName: PAnsiChar; nWidth, nHeight: Longint;
  szFileName: PAnsiChar): Longint; cdecl { or stdcall, see documentation };
  external 'somedll.dll' name 'PWFunc';

あなたはそれを次のように呼びます:

X := PWFunc(PAnsiChar(AnsiString(SomeName)), 17, 33, 
       PAnsiChar(AnsiString(SomeFileName)));

関数がコンパイラの設定に依存するstdcallかどうか。dceclドキュメントを読んでください。疑わしい場合は、両方を試してください。私には似cdeclているので、それから始めましょう。

于 2013-02-18T16:55:56.143 に答える