在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
?
答案 0 :(得分:13)
虽然仍提供Vcl.OleAuto
的源代码,但64位lib
目录不包含Vcl.OleAuto.dcu
。相反,您应该使用System.Win.ComObj
和/或System.Win.ComServ
。请注意,Vcl.OleAuto
的来源会将该单元标记为已弃用,并会告诉您要使用的内容。
如果我们查看Vcl.OleAuto
的源代码,我们可以找到一些尚未移植的32位asm代码。据推测,Embarcadero决定不将此端口移植到64位,因为该设备已被弃用。