在64位Delphi程序中创建OleObject?

use*_*348 5 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');
Run Code Online (Sandbox Code Playgroud)

那么我如何CreateOleObject64位程序中使用?

Dav*_*nan 13

尽管Vcl.OleAuto仍提供源代码,但64位lib目录不包含Vcl.OleAuto.dcu.相反,你应该使用System.Win.ComObj和/或System.Win.ComServ.请注意,Vcl.OleAuto单位为不推荐使用的标记的来源,并告诉您要使用的内容.

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