Newsgroup: it.comp.lang.delphi
Titolo: LoadLibrary non funziona

Buonasera, il mio problema riguarda la funzione LoadLibrary con Delphi 7 
e 2005 (con altri nn ho provato)
ho guardato molti newsgroup e scaricato molti esempi anche dal sito della 
Borland stessa che utlizzano la funzione in questione.
1) la DLL ce l'ho nella root della cartella in cui c'è l'EXE del progetto 
che sto creando
2) la DLL chiamandola con il metodo "[..function..]EXTERNAL 'pippo.dll'" 
funziona
3) chiamo la funzione con "GetProcAddress" con il nome CaseSensitive
4) ho Win XP SP2 ENU
a questo punto posso descrivere il problema "semplicissimo":
quando compilo ed eseguo un progetto di esempio (carica solo una DLL che 
dovrebbe mostrare la scritta PIPPO (come SHOWMESSAGE) ed eseguo la 
funzione LoadLibrary, il THandle rimane a ZERO..con qualsiasi DLL..con 
qualsiasi esempio...a questo punto mi viene il dubbio che c sia qualcosa 
nel mio PC..ma l'ho formattato solo per provare, e nn cambia nulla.
un piccolo estratto dell'esempio:
[..]
  Connessione1  : THandle;
  FunzioneDLL_1 : procedure(testo : string);
begin
  Connessione1 := LoadLibrary('pippo.dll');  //la DLL si trova nella root 
dove si trove questo EXE
  if (Connessione1 <> 0) then 
    begin
      Memo1.Lines.Add('DLL caricata correttamente.');
      FunzioneDLL_1 := GetProcAddress(Connessione1, 'MostraMessaggio');
      FunzioneDLL_1('prova del testo da visualizzare');
    end
  else Memo1.Lines.Add('DLL non caricata!');
end;  //fine funzione
help, thx
-emandt-
--- posted by geoForum on 
http://www.delphiedintorni.it

 nel mio PC..ma l'ho formattato solo per provare, e nn cambia nulla.
in effetti è un problema strano, perchè con la DLL nella stessa cartella 
dell'EXE dovresti avere un LoadLibrary che ti restituisce un valore <> 0.
Non so davvero come aiutarti, il problema potrebbe essere altrove.
L'help dell'SDK dice solo che:
"If a path is not specified and the filename extension is omitted, the 
default library extension .DLL is appended. However, the filename string can 
include a trailing point character (.) to indicate that the module name has 
no extension. When no path is specified, the function searches for the file 
in the following sequence: 
1.	The directory from which the application loaded. 
2.	The current directory. 
3.	Windows 95: The Windows system directory. Use the GetSystemDirectory 
function to get the path of this directory.
Windows NT: The 32-bit Windows system directory. Use the GetSystemDirectory 
function to get the path of this directory. The name of this directory is 
SYSTEM32.
4.	Windows NT: The 16-bit Windows system directory. There is no Win32 
function that obtains the path of this directory, but it is searched. The 
name of this directory is SYSTEM.
5.	The Windows directory. Use the GetWindowsDirectory function to get the 
path of this directory. 
6.	The directories that are listed in the PATH environment variable. "
A questo punto sono curioso anch'io di sapere cos'è che causa il tuo 
problema.
-- 
Mauro Falzari 
   [ 
http://digilander.libero.it/mauro.falzari
 ]
 
 "Se guardi nell'abisso, anche l'abisso guarda in te." 
   (Friedrich Nietzsche)

 e 2005 (con altri nn ho provato)
Prova a scaricare questo:
http://www.geocities.com/andrealaforgia/myfiles/testdll.zip
Scompatta tutto in una cartella, non lo compilare, ma prova a lanciare
direttamente loader.exe.
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

il test che mi hai dato funziona....vedo il THandle <> 0....
quindi posso solo concludere che le DLL degli esempi, la DLL che funziona 
con EXTERNAL 'pippo.dll' non funzionano con LoadLibrary()???
pazzesco....


Non è che la tua DLL ha bisogno di inlcudere la unit Sharemem e di 
distribuire assieme al progetto il file BORLDMM.DLL ?

distribuire assieme al progetto il file BORLDMM.DLL ?
--- posted by geoForum on 
http://www.delphiedintorni.it