DelphiCool
Messages postés455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 mars 2009
-
9 juin 2002 à 10:41
DelphiCool
Messages postés455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 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.
DelphiCool
Messages postés455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 mars 2009 9 juin 2002 à 10:41
Merci pour ta remarque Delphiprog
Les modifications ont été effectiées
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 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.
9 juin 2002 à 10:41
Les modifications ont été effectiées
9 juin 2002 à 09:31
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.