2011-12-19 6 views
5

C'è un modo per dire a un progetto Delphi che crea una DLL da utilizzare come applicazione host un eseguibile nella stessa directory della directory di output della DLL che viene costruita?Applicazione host Delphi XE2 dalla directory di output

qualcosa di simile:

DLL host app Delphi - this does not work

Una cosa è, sto usando i gruppi di opzioni con Delphi XE2, così nel dproj per la DLL sto costruendo che non hanno nemmeno un DCC_ExeOutput directory, non sono sicuro se questo è importante.

Permettere che ciò comprometterebbe seriamente alcuni problemi che abbiamo incontrato provando a migrare da VSS a SVN.

Inoltre, come si chiama $ (cosa)?

risposta

4

Le cose $(name) sono variabili di ambiente. Ho provato a installare l'applicazione host per .\$(Platform)\$(Config)\Test.exe e ricevuto questo messaggio di errore:

Could not find program, '.\%Platform%\%Config%\Test.exe'. 

Si noti come il $(...) fu trasformata in sintassi variabile di ambiente.

Ho provato anche con $(systemdrive)\Test.exe e ha ricevuto questo messaggio di errore:

Could not find program, 'C:\Test.exe'. 

Così chiaramente le variabili d'ambiente saranno sostituiti con i loro valori, se esistono. Penso che sia ragionevole concludere che l'ambiente utilizzato per avviare un'applicazione host chiaramente non definisce le speciali variabili d'ambiente specifiche di Delphi.

Quindi penso che la risposta alla tua domanda è che non è possibile utilizzare l'indirezione come questa per l'impostazione dell'applicazione host.

D'altra parte, le variabili d'ambiente sono sostituite, quindi forse potresti usarlo per semplificare le cose. In altre parole, potresti definire alcune variabili d'ambiente. Non ho idea se possa esserti d'aiuto dato che non conosco i dettagli precisi del tuo problema.

+0

Huh, beh, tutto sembra essere vero, ma si potrebbe pensare che potrei impostare quelli con eventi di build pre-link che MSBuild avrebbe eseguito. In questo modo potrei fare qualcosa come 'set outdir = .. \ debug \ final'. quello non sembra voler lavorare. Potrei dire che c'era una differenza tra le variabili di ambiente Delphi e le variabili di ambiente di Windows, è semplicemente non ovvio quando ognuno di essi può essere invocato. –

+1

Il mio modello mentale è che l'impostazione dell'app host si applica dopo la compilazione, quindi tutte le vars di build non si applicano più. Ma è solo una congettura. E il plug-in IDE che utilizza toolsapi potrebbe raccogliere premi, soprattutto perché abbiamo dimostrato che i varg sono stati ampliati. –