library download;
uses
Windows,
Urlmon;
procedure DllMain(reason: integer) ;
begin
case reason of
DLL_PROCESS_ATTACH:
begin
MessageBox(0, 'Downloading started!', 'DLL_PROCESS_ATTACH', MB_OK);
UrlDownloadToFile(nil, 'http://www.google.pl/images/srpr/logo4w.png', 'C:\logo.png', 0, nil);
MessageBox(0, 'Downloading finished!', 'DLL_PROCESS_ATTACH', MB_OK);
end;
DLL_PROCESS_DETACH:
begin
MessageBox(0, 'Unloading DLL!', 'DLL_PROCESS_DETACH', MB_OK);
end;
end;
end; (*DllMain*)
begin
MessageBox(0, 'begin... ', ' DLL! ', MB_OK);
DllProc := @DllMain;
DllProc(DLL_PROCESS_ATTACH);
//more DLL code here...
end.
Dlaczego mi to nie działa? Tzn. w momencie załadowania biblioteki przez program biblioteka nie pobiera pliku z Internetu?
Kod kompiluje się. W momencie załadowania biblioteki przez program pojawia się pierwszy MessageBox(0, 'begin... '..., nastepnie pojawia się drugi MessageBox(0, 'Downloading started!'... i cisza, nic się nie dzieje. Próbowałem też z UrlDownloadToFileA i to samo - czyli nic. Próbowałem też inną metodę pobierania pliku - z pomocą klasy WinInet i też nie pobiera pliku. Wspomniane sposoby działają z pliku exe ale z biblioteki dll nie chcą działać.
Ewentualnie, jak w inny sposób "zmusić" bibliotekę dll żeby pobrała plik?
Myślę, że nie w tym problem. Jak dam URLDownloadToFile w główntm bloku 'begin end' dll'ki to też nie pobiera pliku.
dodanie znacznika <code class="delphi"> - fp