2012-11-19 13 views
7

In Delphi 2009 e fino è possibile aggiungere questa riga al progetto .dpr per impostare il flag tsaware PE nella vostra applicazione eseguibile:Delphi 2007: come impostare TSAWARE?

{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE} 

ho pensato (erroneamente) che questa sintassi non è supportata in Delphi 2007. Ho un'applicazione che non posso ancora trasferire dal 2007 a una versione di Delphi più recente (l'attività è in corso, ma non verrà eseguita nei prossimi mesi).

Aggiornamento è stato semplicemente che Windows deve essere aggiunto al progetto .dpr anche.

+2

La sintassi è supportata in D2007 e la dichiarazione costante è definita in 'Windows.pas' attorno alla riga 1832 o giù di lì. –

+0

Ok, mio ​​errore! –

risposta

3

La mia ipotesi è che ti manca l'unità Windows dalla clausola uses del file .dpr. Aggiungilo e sarai in grado di scrivere:

{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE} 

nel tuo file .dpr. Sebbene sia chiaramente necessario scriverlo dopo la clausola uses.

La funzione $SetPEOptFlags è stata aggiunta alcune versioni prima di Delphi 2007. E quindi l'errore che presumibilmente si vede è semplicemente che IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE non è dichiarato. E ciò viene risolto assicurandosi che il simbolo sia visibile nel file .dpr. Chiaramente puoi farlo dichiarando una costante nel file .dpr, ma per evitare la duplicazione preferisco sempre aggiungere l'unità Windows.

2

compila sotto D7

const 

IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = $8000; 

{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE} 
+0

Ok, mio ​​errore! –

Problemi correlati