EXEの中で外部DLLの参照を行っている場合、 そのDLLをレジストリに登録しなければならないと思います。 その方法を調べてみるとregsvrce.exeを使う方法は見つかりましたが、 Windows Mobile 5.0のSDKには存在しませんでした。 最近では登録する方法が変わったのでしょうか? 古いSDKをインストールして、 そこからregsvrce.exe持ってこれば済む話なのかもしれませんが、 この辺りご存知の方がいらっしゃましたら教えて頂けないでしょうか? よろしくお願いいたします。
というか、COMの登録ってよくregsvrce.exe(またはregsvr32.exe)を使うと言う説明があるけど、regsvrce.exeって実は全然たいしたことしてないというのを知らない人が多いんだろか。
regsvrce.exe(regsvr32.exe)って、単に引数で指定されたDLLをLoadLibraryして、DllRegisterServerをGetProcAddressして、それを呼び出すだけ。以上。ソースを見たことがある人ならわかるが、すごく単純な、短いプログラムなのだ。*1
実際のCOM登録(つまりCOM動作に必要なレジストリの登録)は対象のDLL内のDllRegisterServerで全て記述されている。regsvrce.exeはそれを呼び出すだけ。
つまりregsvrce.exeなんて無くてもいいわけで、あるCOM DLLを登録して使いたいのであれば単純に自分で
(1)対象のDLLをLoadLibrary
(2)DllRegisterServerをGetProcAddress
(3)取得したDllRegisterServer*2をコール
するだけで良い。
ちなみにアンインストール(regsvrce /u xxxx.dll)したい場合は、DllRegisterServerの代わりにDllUnregisterServerを呼び出す。