C#で作られたDLLのクラスを使用するには


Delphi初心者  2007-07-17 21:19:00  No: 27100

初めまして、Delphi暦2年の初心者です。

今、C#で作られたDLL内に定義してあるクラスをDelphiで使用したいと悩んでおります。

DLL内の関数を使う方法はわかるのですが、クラスだとどのようにしたらいいのかわかりません。
どなたかご存知ないでしょうか?

使っているDelphiは6で、C#はVS.NET2003です。

宜しくお願い致します。


Delphi初心者  2007-07-20 23:51:37  No: 27101

一応自分なりに調べ尽くしてみて、.NETのDLLをタイプライブラリにして、Delphi側で取り込もうとしてみました。

すると、パッケージのコンパイル時にmscorlib_TLB(意識的に作ったものではありません)内で、'Byte型の宣言が完了していません'等のエラーが発生し、取り込む事が出来ません。。。

該当箇所は
  Byte = packed record
    m_value: Byte;
  end;
のようになっています。

これは、何か書き換えればよいのか、そもそもC#のDLLは取り込めないのか。。。

どなたかご存知ないでしょうか?


Delphi初信者  2007-07-21 00:46:18  No: 27102

私も詳しいわけじゃないけど?
オプションのタイプライブラリのIDL形式とかDelphi形式って
取り込んだ後の話なんだっけ?


Delphi初信者  2007-07-21 00:57:56  No: 27103

>>Byte = packed record
このネーミングがまずいって落ち?


Delphi初心者  2007-07-21 03:13:40  No: 27104

返信ありがとうございます。

ネーミングがマズイんですかね?
他にも
  Integer = packed record
    m_value: Integer;
  end;
のような箇所があるんですけど、これはエラーになってないんです。

なお、
  Byte = packed record
    m_value: Byte;
  end;

  Byte = packed record
    m_value: Currency;
  end;
に変えるとエラーではなくなりました。
根本的には何の解決になってないでしょうけれども。。。

タイプライブラリには形式があるんですか。
ちょっと情報探してみます。


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

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






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