1

私が使用している関数には、フラグ (fCreationDisposition) を必要とする 3 つのパラメーターが含まれています。

function MpqOpenArchiveForUpdate(lpFileName: LPCSTR; fCreationDisposition, dwHashTableSize: DWord): THandle; stdcall; external 'lmpqapi.dll';

ドキュメントには、5 つの使用可能なフラグがあると記載されています。ただし、フラグのいずれかを使用すると、Delphi はそれが「宣言されていない識別子」であると通知します。

Delphi が「宣言されていない識別子」であることを通知せずにフラグにアクセスできるようにするために追加する必要があるものはありますか?

注:uses関数を呼び出したセクションの下:

function MpqOpenArchiveForUpdate(lpFileName: LPCSTR; fCreationDisposition, dwHashTableSize: DWord): THandle; stdcall; external 'lmpqapi.dll';

4

2 に答える 2

5

コードでフラグを定義する必要があります。Delphiでは、すべてを最初から定義する必要があります。C/ C ++の場合のように、DLLに属する事前に作成されたAPIヘッダーファイルを利用することはできません。したがって、フラグの数値を追跡し(ドキュメントに記載されていないため)、コードで宣言する必要があります。例:

// these values are just a guess, you will have
// to download the API and look them up...
const
  MOAU_CREATE_NEW = $1;
  MOAU_CREATE_ALWAYS = $2;
  MOAU_OPEN_EXISTING = $4;
  MOAU_OPEN_ALWAYS = $8;
  MOAU_MAINTAIN_LISTFILE = $10;
于 2012-10-03T06:16:13.040 に答える
2

C++ ヘッダー ファイルでフラグ値の宣言を見つける必要があります。そして、それらの宣言を Delphi コードに変換します。次のようになります。

const
  MOAU_CREATE_NEW = ...;
  MOAU_CREATE_ALWAYS = ....;
  etc.

ヘッダー ファイルがないため、値を入力できません。

于 2012-10-03T06:18:40.200 に答える