2015-02-20 19 views
5

In un 64 bit programma Delphi XE7 VCL, l'unità Vcl.OleAuto non può essere trovato:CreateOleObject in un programma Delphi a 64 bit?

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

Mentre funziona senza problemi in un 32 bit programma:

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

Quindi, come posso utilizzare CreateOleObject in un programma 64-bit?

risposta

10

Anche se il codice sorgente per Vcl.OleAuto è ancora fornito, la directory a 64 bit lib non include Vcl.OleAuto.dcu. Invece è previsto l'utilizzo di System.Win.ComObj e/o System.Win.ComServ. Notare che l'origine per Vcl.OleAuto contrassegna quell'unità come deprecata e indica invece cosa usare.

Se guardiamo attraverso la fonte per Vcl.OleAuto possiamo trovare qualche codice asm a 32 bit che non è stato portato. Presumibilmente, Embarcadero ha deciso di non effettuare il porting a 64 bit perché l'unità è deprecata.

+0

Grazie, David - 'System.Win.ComObj' ha fatto il trucco. – user1580348

Problemi correlati