Bonjour,
mon contexte est le suivant : Delphi 7 entreprise & Windows XP
résumé : j'ai une petite application qui
.crée un fichier de commande pour compiler un programme en gFortran
.lance ce fichier de commande
détail
depuis un momen je ne comprenais pas pourquoi cela ne marchait pas en
utilisant F9 sous l'IDE Delphi et puis en lançant directement l'exécutable
cela fonctionne parfaitement.
Le code DELPHI (remarque : la fonction LanceAppliAttenteFin
est bien connue des utilisateurs de ce forum puisqu'elle provient de la FAQ
Delphi)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 procedure TFicheTest.CompilerExecute(Sender: TObject); begin LanceAppliAttenteFin('C:\TEMP\Commandes\fortranDLL.bat'); end; function LanceAppliAttenteFin(NomFichier:string):boolean; var StartInfo : TStartupInfo; ProcessInformation : TProcessInformation; begin result:=true; ZeroMemory(@StartInfo, sizeof(StartInfo)); StartInfo.cb:=sizeof(StartInfo); StartInfo.lpTitle:=nil; StartInfo.dwFlags:=STARTF_USESHOWWINDOW; StartInfo.wShowWindow:=SW_SHOWMINIMIZED; if CreateProcess(nil,PChar(NomFichier),nil,nil,true,0,nil,nil,StartInfo,ProcessInformation) then WaitForSingleObject(ProcessInformation.hProcess, INFINITE) else result:=false; end;
Le fichier de commande généré (C:\TEMP\Commandes\fortranDLL.bat)
Le diagnostic obtenu quand je lance l'EXE avec F9 sous l'IDE (c:\temp\out.txt)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ECHO ON set FORT=C:\Program Files\gfortran\bin\gFortran.exe set FORTINC=C:\Program Files\gfortran set SRC=C:\Temp\Sources set DLL=C:\TEMP\LIBS\TEST.DLL set OUT=C:\TEMP\out.txt "%FORT%" -shared -o "%DLL%" -I"%FORTINC%\include" %SRC%\*.f %SRC%\*.for>%OUT% 2>&1 ECHO OFF
gFortran.exe: CreateProcess: No such file or directory
Remarque finale : ce comportement différent "EXE" & "F9 sous IDE" pour des
exécution de fichiers ".BAT" c'est déjà produit dans d'autres cas.
Cela vous est-il déjà connu ?
Partager