在64位Delphi程序中创建OleObject?

时间:2015-02-20 13:50:38

标签: delphi ole delphi-xe7

在Delphi XE7 64位 VCL程序中,无法找到单位Vcl.OleAuto

[dcc64 Fatal Error] Unit1.pas(33): F1026 File not found: 'Vcl.OleAuto.dcu'

虽然它在 32位程序中没有问题但

uses
  Vcl.OleAuto;
...
FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');

那么如何在 64位程序中使用CreateOleObject

1 个答案:

答案 0 :(得分:13)

虽然仍提供Vcl.OleAuto的源代码,但64位lib目录不包含Vcl.OleAuto.dcu。相反,您应该使用System.Win.ComObj和/或System.Win.ComServ。请注意,Vcl.OleAuto的来源会将该单元标记为已弃用,并会告诉您要使用的内容。

如果我们查看Vcl.OleAuto的源代码,我们可以找到一些尚未移植的32位asm代码。据推测,Embarcadero决定不将此端口移植到64位,因为该设备已被弃用。