Bonjour à toutes et à tous,
Dans mon application, la Dll est dans le même dossier et à l'ouverture de cette application elle est donc chargée.
Si je veux communiquer cette application, je dois aussi communiquer la Dll.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 const DirDll = 'DirOpenDlg.Dll'; function DirOpenDialog(var aDir: PChar; const aHandle: THandle): Boolean; stdcall; external DirDll name{$IFDEF UNICODE} 'DirOpenDialogW'{$ELSE} 'DirOpenDialogA'{$ENDIF};
Avec InnoSetup pas de problème mais si j'utilise une ressource, l'extraire puis la sauver dans le dossier puis la charger, cela ne fonctionne pas.
Et dans le Oncreate :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 {$R Fichdll.res} const DirDll = 'DirOpenDlg.Dll'; function DirOpenDialog(var aDir: PChar; const aHandle: THandle): Boolean; stdcall; external DirDll name{$IFDEF UNICODE} 'DirOpenDialogW'{$ELSE} 'DirOpenDialogA'{$ENDIF};
Cela ne fonctionne pas mais je sais pourquoi car la Dll n'est pas encore sauvée dans le dossier alors quelle est chargée à l'exécution de l'application.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Stream := TResourceStream.Create(HInstance, 'Fd', RT_RCDATA); try Stream.SaveToFile(chappli +'DirOpenDlg.dll'); finally Stream.Free; end;
Ma question peus t'on mettre une temporisation entre la sauvegarde et l'appel de cette Dll ?
Ou modifier
En vous remerciant.external DirDll name{$IFDEF UNICODE} 'DirOpenDialogW'{$ELSE} 'DirOpenDialogA'{$ENDIF};
@+,
cincap
Partager