はじめまして、型宣言についてご教授願います。
Delphi環境にて、以下のインターフェイスを持つDLLを取り込もうと
しているのですが、エラーとなってしまいます。
---------------------------------------------------------------------
■エラー原因のインターフェイス
HRESULT Search(
[in] double DateTime,
[in] unsigned char TypeID[34],
■エラー内容
[エラー] DATA_TLB.pas(1233): OLE オートメーション部に間違った型が
あります :'PrivateAlias1'
[エラー] DATA_TLB.pas(1238): OLE オートメーション部に間違った型が
あります :'PrivateAlias1'
[エラー] DATA_TLB.pas(1241): OLE オートメーション部に間違った型が
あります :'PrivateAlias1'
[致命的エラー] DataTLB_TLB.pas(34): 'DATA_TLB.pas' ユニットは
コンパイルできませんでした
■'PrivateAlias1'の宣言
PrivateAlias1 = array[0..33] of Byte; {*}
---------------------------------------------------------------------
[in] unsigned char FeatureTypeID[34] (Byte配列)の型宣言が違うようなのですが、
動的配列型(TByteDynArray)に変えてもエラーとなってしまいます。
HELPをみれば、OLEオートメーション部で使えるような型で宣言しなおすとあるのですが
どのような型で宣言すればよいのでしょうか。
ご助言よろしくお願い致します。
自己レスです。
エラーとなる個所の PrivateAlias1 を以下の記述に変更して
したところ、取り込み直すことができました。
function SearchByBuffer(DateTime: Double;
FeatureTypeID: PrivateAlias1;
......
↓
function SearchByBuffer(DateTime: Double;
FeatureTypeID: {??PrivateAlias1}OleVariant;
......
ツイート | ![]() |