|
分類:[C++/CLI]
VS2005, C++/CLIの.NETDLLをCOM公開したいのですが、うまくいっていません。 どなたかご教授下さい。 各種サイト見ると以下の条件を満たせばよさそうなのですが、すべてしてもNGです。
■DLL作成まで。 ○C++/CLIのDLLのCOM公開クラスにComVisuble属性をつける ○デフォルトコンストラクタを作成 ○公開するクラスをInterfacfeを切り出し、実装する ○クラスのpublicメソッドをインライン化 ■COM登録 ○regasmにcodebase指定(厳密な署名がないと怒られるけど登録はできている) ○regasmに対象のDLLパスにマルチバイト文字が含まれないようにする
NGというのは、私の使用方法はExcel2003VBAから.NETdllをCOM相互運用でロードしたいのですが CreateObjectをした時点で参照DLL or 依存関係の1つが見つからないと言われています。 tlbの作成やDLL自体、DLLの.NETからの利用はすべてうまくいっています。 "エラー"はCreateObjectするまで一切でません。tlb自体の参照もOKで ExcelVBAのオブジェクトブラウザではメソッドも見れており、正しそうです。
Dependency WalkerでみるとMSJAVA.dllがないと言われ、ネットから探してsystem32で regsvr32しましたが、DependencyWalkerでみる依存関係は解消されているようですが、 依然として依存関係が不足しているというエラーが発生します。
OSはXPsp3です、sp3にするとMSJAVA.dllのregsvr /uが正しくなされていないという噂も ネット情報ではあり、ちょっと関係しているのかとも思っていますが・・。
|