DIALIB.DLL -(DIALOG DANS UNE DLL DE 7 KO)-

DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009 - 9 juin 2002 à 10:41
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009 - 9 juin 2002 à 10:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11970-dialib-dll-dialog-dans-une-dll-de-7-ko

DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
9 juin 2002 à 10:41
Merci pour ta remarque Delphiprog
Les modifications ont été effectiées
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
9 juin 2002 à 09:31
Dans MainForm.pas, tu écris :
procedure TMainForm.Button1Click(Sender: TObject);
var DialShow : procedure;
begin
h := loadlibrary('dialib.dll');
dialshow := GetProcAddress(h, 'DialShow');
dialshow;

Or, si ton programme ne trouve pas la dll, tu cherches quand même la procédure DialShow.
Un minimum de contrôles est nécessaire avant d'appeler une routine dans une bibliothèque, sinon gare aux plantages !
Le minimum syndical dit :
h := loadlibrary('dialib.dll');
if h <> 0 then
try
dialshow := GetProcAddress(h, 'DialShow');
if Assigned(DialShow) then
dialshow
else
raise Exception.Create('DialShow non trouvée');
finally
FreeLibrary(h);
end
else
raise Exception.Create('Dialib.dll non trouvée.');

C'est un minimum d'habitudes à prendre que de s'assurer que toutes les ressources allouées soient bien libérées.
Rejoignez-nous