无法连接Delphi XE3内置的Com Object

时间:2014-02-12 08:35:52

标签: delphi com activex

我们有一个具有内置com对象的Delphi应用程序。在Delphi XE3(Windows 8)中编译时,我们无法从Visual Studio C#中引用它。但是,在Delphi 2010(Windows 7)中编译的旧版本按预期工作。

com对象注册没有错误,我可以使用Excel中的VBA脚本访问它。有没有人遇到这样的事情?

1 个答案:

答案 0 :(得分:2)

最可能的解释是比特不匹配。我假设COM服务器是32位,因为你在Delphi 2010中编译它。

假设您的COM服务器是进程内服务器。然后我猜你失败的主机是64位应用程序。如果是这样,那么你需要进行比特匹配。最有可能的目标是通过定位x86将主机切换为32位。

如果COM服务器不在proc中,则问题在于注册而不是可执行位数匹配。它将在32位注册表视图中注册,但您的64位主机正在查看64位视图。这可以解释为什么您的32位Excel VBA代码可以找到它。您需要在32位和64位注册表视图中注册服务器。或者将主机切换到32位。