2010-12-07 1 views
5

私はDelphi(2007)アプリケーションを標準のexeにしており、COMインターフェイスを追加したいと思います。私はすでに複数のCOMオブジェクトをエクスポートするCOM dllを持っており、これは完全に動作しています。しかし、私がDLLからCOMロジックを挿入しようとしたとき(つまり、 "exports"と "{$ R * .TLB}"と関連する使用)、EXEのdprファイルに完全にコンパイルされますが、regsvr32 myname.exeまた、DelphiのCOMサーバーでもあるEXEを書く方法

また、完全に新しいVCLFormsアプリケーションを作成し、IDEウィザードを使用してAutomationObjectを追加しようとしましたが、Delphiではアクティブなコンポーネントが利用できないため、Delphiでこれを行う必要はありません。

私は何をしようとすることもできますか?もしそうなら、誰が何が間違っているかもしれないという考えを持っていますか?

おかげ

+0

64ビットWindowsで実行していますか? Vista/7? –

+0

はい、私はWindows 7 64ビットを実行しています – Steve

+0

あなたの答えがあるようです。私の指摘は、64ビットWindowsでは、regsvr32の32ビット版を入手するためにちょっとした作業が必要だということでした。もちろん、これは、これはexeでdllではなく、自己登録を行うためのコードをホストするための別のプログラムは必要ないので、それをつぶしませんでした。 –

答えて

7

regsvr32が正常に動作しない場合は、app.exe/regserverまたはapp.exe/unregserverを実行する必要があります。

+0

実際、/ regserverまたは/ unregserverを使ってアプリケーションを実行してください。これはすべてComServ.pasユニットで処理されます。 –

+0

ブリリアント。ありがとう。今は完璧に動作しています。 – Steve

1

DllRegisterServerDllUnregisterServerを輸出あなたのexeファイルですか?

+0

はい、あります。私はちょうどregsvr32が正常に登録ダイアログを表示していないことに気づいた。実際には、ちょうど砂時計を数秒間表示して終了します。 – Steve

+0

戻り値は何ですか?DllRegisterServer? – Remko

+0

私は知らないが、リチャードチェンバレンが私の方法の誤りを指摘したので、私は試してみるつもりはない。とにかく助けてくれてありがとう。 – Steve

関連する問題