掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VC++で作成したCOM&タイプライブラリの仕様について (ID:8260)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VC++で作成したCOMをDelphiで使用しようと思い、Delphiを少しばかり勉強したのですがC言語でいうvoid* pが、var p: Pointer;となってしまい実質ポインタのアドレスを渡しているような結果の引数になってしまいます。 IDLでは以下のように定義しています。↓ HRESULT Func( [in] void* p ); するとDelphi側ではポインタの変数パラメータになります。↓ function Get(var p: Pointer): HResult; stdcall; 当然Delphiでこのメソッドを使用すると例外エラーになってしまいます。 C/C++、VBではうまくいきます。 void*は使うなということなんでしょうか?(汗 もう一つ質問があるのですが、タイプライブラリ内に定義した普通の関数がVBでは認識してくれるのですが、Delphiではダメでした。 そもそもタイプライブラリに関数を定義してもDelphiでは対応してないのでしょうか? IDLでは、 [dllname("xxxxxx.dll")] module xxxxxxAPI { [entry("Hoge")] void __stdcall hoge(void); }; としています。 初歩的な質問ではありますがよろしくお願いします。 /* 開発環境 */ Win2k SP4 VC++6.0 SP6 非ATL Delphi Personal 6
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.