OLEオートメーション部での配列型はどのように記述すればよいのですか?

解決


さくらい  2003-11-14 18:40:51  No: 5654

はじめまして、型宣言についてご教授願います。

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オートメーション部で使えるような型で宣言しなおすとあるのですが
どのような型で宣言すればよいのでしょうか。

ご助言よろしくお願い致します。


さくらい  2003-11-20 22:29:30  No: 5655

自己レスです。

エラーとなる個所の PrivateAlias1 を以下の記述に変更して
したところ、取り込み直すことができました。

function SearchByBuffer(DateTime: Double;
                        FeatureTypeID: PrivateAlias1;
                        ......

                     ↓

function SearchByBuffer(DateTime: Double;
                        FeatureTypeID: {??PrivateAlias1}OleVariant;
                        ......


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加