- PR -

DLLのレジストリ登録について

1
投稿者投稿内容
ドットネット初心者
会議室デビュー日: 2004/07/21
投稿数: 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ではじめて開発を行ったもので常識的なことを質問しているかもしれませんがよろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-30 09:35

開発したマシンにはVB6.0が入っていて、
MSMAPI32.ocxも入っているとかではないですか?
アプリケーションで利用しているのはOCXライブラリとか。
Googleで検索したところ
20C62CA0-15DA-101B-B9A8-444553540000のCLSIDは
MSMAPI32.ocxに含まれているようですが。。
ちなみにウチの環境にも上記のCLSIDは登録されていませ
んでした。

引用:

.NETでもDLLをレジストリ登録したほうがよいのでしょうか?


.NETと言っても、Windowsの仕組みを使う事には変わりはない
ですので、Windowsに登録されているCOMを使うのであれば、
そのCOMがWindowsに登録されていない事には利用する事は出来
ません。
最近では、単にDLLと言う表現で十把一絡げにされているのをよ
く見るのですが、今回の場合はCOMサーバーと言う事になるので
はないでしょうか?
拡張子が.DLLであるからと言って何でもかんでもレジストリに
登録できると言う事ではないです。今では拡張子.DLLのファイ
ルにはたくさんの意味が含まれる様になってきたので混同しな
いように注意してくださいね。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
1

スキルアップ/キャリアアップ(JOB@IT)