2017-07-27 9 views
0

一部の外部ライブラリ、特にWindows APIでは、文字配列へのポインタであるいくつかのフィールドを持つ構造体型が使用されます。Inno Setupでワイド文字ポインタフィールドを使用して構造体を定義するUnicode

イノセットアップUnicodeにはPCharPWideChar)タイプがありません。ワイド文字配列のポインタ型のフィールドを使用する構造体を定義するにはどうすればよいですか?

例えば、SHFILEOPSTRUCT structureをどのように定義すればよいですか?

type 
    TSHFileOpStruct = record 
    hwnd: HWND; 
    wFunc: UINT; 
    pFrom: { what type? } 
    pTo: { what type? } 
    fFlags: Word; 
    fAnyOperationsAborted: BOOL; 
    hNameMappings: HWND; 
    lpszProgressTitle: { what type? } 
    end; 

答えて

0

タイプを使用してください。

  • recordの定義(問題が何であるか):Inno SetupのはUnicodeパスカルスクリプトでstringタイプは、自動的にいくつかの文脈でPWideChar様タイプにマーシャリングされます。
  • external functionsの引数と戻り値の型宣言で。

のでSHFILEOPSTRUCT構造体の定義は次のとおりです。使用する場合

type 
    TSHFileOpStruct = record 
    hwnd: HWND; 
    wFunc: UINT; 
    pFrom: string; 
    pTo: string; 
    fFlags: Word; 
    fAnyOperationsAborted: BOOL; 
    hNameMappings: HWND; 
    lpszProgressTitle: string; 
    end; 

Inno Setup invoke or replicate native Windows file copy operationを参照してください。

他のすべての文脈では、stringは、Pascal言語から固有の組み込み関数を保持します。

関連する問題