Jak otwórz .dll za pomocą LoadLibrary?
Ostatnio zmodyfikowano 2009-08-23 10:11
GoldWolf Temat założony przez niniejszego użytkownika |
Jak otwórz .dll za pomocą LoadLibrary? » 2009-08-18 21:16:54 A dodatkowo jak to już wykonam, jak potem powyciągaj sobie funkcje przy pomocy funkcji GetProcAddress? Ma ktoś jakiś prosty przykład takich czynności? |
|
skovv |
» 2009-08-18 21:30:33 ja nie mam xD Heh xD Ja wczytuje (i pisze) dlle tylko do Game Makera :p |
|
DejaVu |
» 2009-08-19 02:21:27 Dziwna nazwa tematu, dziwny opis problemu. Doprecyzuj dokładniej o co Ci chodzi bo dla mnie obecna treść nie jest na tyle jasna, żeby chciało mi się szukać rozwiązania w MSDN'ie lub googlach. |
|
GoldWolf Temat założony przez niniejszego użytkownika |
» 2009-08-19 06:52:36 Myślałem, że ma ktoś jakieś już doświadczenie. Sam poszukam. Mam pliki .dll z curl, chciałbym je dodać do projektu. Wiem, że za pomocą LoadLibrary można tego dokonać. Dodatkowo za pomocą funkcji GetProcAddress, można wyciągnąć funkcje które są w takich plikach. Niestety nie było dobrego przykładu.
Jeśli nikt nie próbował to odpuście sam poszukam. |
|
pixelmaster |
» 2009-08-19 10:29:46 |
|
DejaVu |
» 2009-08-19 13:53:41 Przykład: http://msdn.microsoft.com/en-us/library/ms686944(VS.85).aspx#include <windows.h> #include <stdio.h>
typedef int( __cdecl * MYPROC )( LPWSTR );
VOID main( VOID ) { HINSTANCE hinstLib; MYPROC ProcAdd; BOOL fFreeResult, fRunTimeLinkSuccess = FALSE; hinstLib = LoadLibrary( TEXT( "MyPuts.dll" ) ); if( hinstLib != NULL ) { ProcAdd =( MYPROC ) GetProcAddress( hinstLib, "myPuts" ); if( NULL != ProcAdd ) { fRunTimeLinkSuccess = TRUE; ( ProcAdd )( L"Message sent to the DLL function\n" ); } fFreeResult = FreeLibrary( hinstLib ); } if( !fRunTimeLinkSuccess ) printf( "Message printed from executable\n" ); }
|
|
GoldWolf Temat założony przez niniejszego użytkownika |
» 2009-08-23 10:39:26 Sprawa nieaktualna, być może jeszcze kiedyś się tym zajmę. |
|
manfred |
» 2009-08-23 10:11:17 A nie można wbić importów do .idata (zwyczajowa nazwa sekcji z tablicą importów), poprzez dolinkowanie pliku .lib, który powinien przyjść razem z .dll? Oszczędzisz sobie problemów, a procesorowi trochę cykli. |
|
« 1 » |