1

Delphi で自動化サーバーを開発しており、いくつかのプロパティが文字列の配列を返す必要があります。仕様では次のことが求められます (3 か国語の例を含む):

C# 
string[] Names { get; }

Visual Basic 
ReadOnly Property Names As String()
    Get

Visual C++ 
property array<String^>^ Names {
    array<String^>^ get ();
}

私はこれを行うために多くの方法を試しましたが、RIDL タイプとして SafeArrays と Variant を含めて立ち往生しています。私の最新の試み(したがって、少なくとも1つの例があります)は次のとおりです。

function TFW.Get_Names: OleVariant; safecall;

var
  I : integer;
  NumFilters:integer;
  Filters:FieldsType;
  V:OleVariant;

begin
  NumFilters:=SplitFields(Filters,FilterNames,',','"');

  V := VarArrayCreate([1,NumFilters], VT_BSTR);

  for I := 1 to NumFilters do
    V[I]:=Filters[I];

  Get_Names:=V;  
end;

この場合、クライアント アプリケーションは次のエラーを訴えます。

「型 'System.String[*]' のオブジェクトを型 'System.String[]' にキャストできません。」

前もって感謝します!

4

1 に答える 1