まず、私は Delphi と COM の初心者ですが、Delphi で COM アプリケーションを作成する必要があります。インターネットで多くの記事やメモを読みましたが、COM と Delphi の COM はまだよくわかりません。
私のソース - http://www.everfall.com/paste/id.php?wisdn8hyhzkt (約 80 行)。
COM インターフェイスと Impl クラスを作成しようとしています。Delphi からインターフェイス メソッドを呼び出すと機能しますが (TestClient.Create を介して impl オブジェクトを作成します)、外界からオブジェクトを作成しようとすると (Java から、com4j を介して) ) 私のアプリケーションは次の例外でクラッシュしました:
Project Kernel.exe raised exception class $C0000005 with
message 'access violation at 0x00000002: read of address 0x00000002'.
QueryInterface にブレークポイントを設定すると、壊れますが、関数から出ると、すべてクラッシュします。
私が間違っていることは何ですか?私はまだ何が欠けていますか?このようなばかげた質問を避けるために、(Delphi の) COM について何を読むことができますか?