- - PR -
DLLのレジストリ登録について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-30 02:02
はじめまして
WIN2000,VB.NET2003でMAPIを使用してメールを送受信するプログラムを作成しました。 ですが、開発したマシンではMAPIが使用できたのですが、フレームワーク1.1のみを入れたマシン(配布先と同じ環境)では以下のようなエラーが発生してしまいます。 System.Reflection.TargetInvocationException: 呼び出しのターゲットが例外をスローしました。 ---> System.Runtime.InteropServices.COMException (0x80040154): CLSID '{20C62CA0-15DA-101B-B9A8-444553540000}' の COM オブジェクトは有効でないか、登録されていません。 WINNTのSYSTEM32に入っているMAPI32.DLLのバージョンはどちらのマシンとも1.0.2536.0です。 .NETでもDLLをレジストリ登録したほうがよいのでしょうか? それともほかに原因があるのでしょうか? .NETではじめて開発を行ったもので常識的なことを質問しているかもしれませんがよろしくお願いします。 | ||||
|
投稿日時: 2004-08-30 09:35
開発したマシンにはVB6.0が入っていて、 MSMAPI32.ocxも入っているとかではないですか? アプリケーションで利用しているのはOCXライブラリとか。 Googleで検索したところ 20C62CA0-15DA-101B-B9A8-444553540000のCLSIDは MSMAPI32.ocxに含まれているようですが。。 ちなみにウチの環境にも上記のCLSIDは登録されていませ んでした。
.NETと言っても、Windowsの仕組みを使う事には変わりはない ですので、Windowsに登録されているCOMを使うのであれば、 そのCOMがWindowsに登録されていない事には利用する事は出来 ません。 最近では、単にDLLと言う表現で十把一絡げにされているのをよ く見るのですが、今回の場合はCOMサーバーと言う事になるので はないでしょうか? 拡張子が.DLLであるからと言って何でもかんでもレジストリに 登録できると言う事ではないです。今では拡張子.DLLのファイ ルにはたくさんの意味が含まれる様になってきたので混同しな いように注意してくださいね。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ |
1