首先,我是 Delphi 和 COM 的新手,但我应该在 Delphi 中构建 COM 应用程序。我在互联网上阅读了很多文章和笔记,但是我仍然不清楚Delphi中的COM和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 中设置断点 - 它会中断,但是当我从函数中出来时 - 所有崩溃。
我做错了什么?我还缺少什么?我可以/应该读什么关于 COM(在 Delphi 中)以避免这样的愚蠢问题?