首先,我在Delphi和COM中很新,但我應該在Delphi中構建COM應用程序。我在互聯網上閱讀了很多文章和筆記,但Delphi的COM和COM仍然不清楚。訪問衝突在Delphi中的GetInterface/QueryInterface之後
我的消息來源 - 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斷點 - 它打破了,但是當我從功能出來 - 所有崩潰。
我在做什麼錯了?我還缺少什麼?我可以/應該閱讀關於COM(在Delphi中)以避免這種愚蠢的問題?
如果我取消註釋的QueryInterface代碼 - 沒有訪問衝突,但com4j說,不支持的接口。 – W55tKQbuRu28Q4xv 2010-04-23 11:44:04
你能給我們一個Java端的代碼清單嗎? – 2010-04-23 14:52:23
對不起,現在不行。我在家裏沒有項目。 它大多由com2j自動生成,僅由CoCreateInstance(CLSID)組成。 – W55tKQbuRu28Q4xv 2010-04-23 15:24:11