Thread View: pl.comp.lang.asm
4 messages
4 total messages
Started by Remek
Sat, 24 Nov 2007 13:18
Argumenty funkcji
Author: Remek
Date: Sat, 24 Nov 2007 13:18
Date: Sat, 24 Nov 2007 13:18
20 lines
1259 bytes
1259 bytes
Witam
Mam Dll zrobiona w C++, w której jest jedna funkcja:
{
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*
lpReserved)
}
Jak tę funkcję wywołac z poziomu asemblera? Jakie należy podac parametry?
Póki co jako "HINSTANCE hinst" podaję uchwyt biblioteki uzyskany przez
LoadLibrary, jako "lpReserved" daję 0 (null). A co podać jako "unsigned
long reason"?
push 0
push offset ???
push offset hLib
call F1_Offset
Remek
Re: Argumenty funkcji
Author: rwt
Date: Mon, 26 Nov 2007 09:41
Date: Mon, 26 Nov 2007 09:41
10 lines
1166 bytes
1166 bytes
Remek wrote: > int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* > lpReserved) > Jak tę funkcję wywołac z poziomu asemblera? Jakie należy podac parametry? Po co? -- / qo |) :@=N%_g=v=a=g_eD_e=c()=d=8! =%!Gn@8're. w8in/ad \ _x/ , ;h-%-a'hA'H4,X0'Xo~xo~xO,R`-%EXp01ITed: *-7/+eh / | ng `-%__%--'__%--'__%--~__%--^%B`/$qV3r[o; &GooMee L o_O http://tech.groups.yahoo.com/group/opRWTng O_o L"EnOF"
Re: Argumenty funkcji
Author: Remek
Date: Mon, 26 Nov 2007 12:14
Date: Mon, 26 Nov 2007 12:14
14 lines
1465 bytes
1465 bytes
Użytkownik "rwt" napisał: > Po co? Musiałem czegoś nie zrozumieć. Wydawało mi się, że należy tę funkcję wywołać, ponieważ jako jedyna występuje w pliku źródłowym biblioteki. Jednak po zrobieniu pliku *.def (impdef.exe) otrzymałem inne nazwy funkcji. Wykorzystałem LoadLibrary, oraz GetProcAddress i działa. Swoją drogą chciałbym wiedzieć co to za argument i jak się go "zdobywa". Z poziomu asemblera udało mi się dostać do funkcji Dll zrobionej w C++. Czy można odwrotnie, tzn. jak wykorzystać Dll zrobioną w Masm32 z poziomu programu w C++? Pozdrawiam
Re: Argumenty funkcji
Author: rwt
Date: Tue, 27 Nov 2007 14:38
Date: Tue, 27 Nov 2007 14:38
30 lines
2706 bytes
2706 bytes
Remek wrote: > Musiałem czegoś nie zrozumieć. Wydawało mi się, że należy tę funkcję > wywołać, ponieważ jako jedyna występuje w pliku źródłowym biblioteki. > Jednak po zrobieniu pliku *.def (impdef.exe) otrzymałem inne nazwy > funkcji. Wykorzystałem LoadLibrary, oraz GetProcAddress i działa. Swoją > drogą chciałbym wiedzieć co to za argument i jak się go "zdobywa". > Z poziomu asemblera udało mi się dostać do funkcji Dll zrobionej w C++. > Czy można odwrotnie, tzn. jak wykorzystać Dll zrobioną w Masm32 z poziomu > programu w C++? ⁃‟DllMain Callback Function” ‹http://msdn2.microsoft.com/en-us/library/ms682583.aspx› (‛DllMain' to nowa nazwa dla ‛DllEntryPoint’) ⁃‟WinMain Function” ‹http://msdn2.microsoft.com/en-us/library/ms633559.aspx› ⁃‟Linkage Specifications” ‹http://msdn2.microsoft.com/en-us/library/s6y4zxec(VS.80).aspx› ⁃‟Decorated Names” ‹http://msdn2.microsoft.com/en-us/library/56h2zst2(VS.80).aspx› ⁃‟Name Decoration” ‹http://msdn2.microsoft.com/en-us/library/deaxefa7(vs.71).aspx› ⁃‟Using extern to Specify Linkage” ‹http://msdn2.microsoft.com/en-us/library/0603949d(VS.80).aspx› ⁃‟Exporting C++ Functions for Use in C-Language Executables” ‹http://msdn2.microsoft.com/en-us/library/wf2w9f6x(VS.71).aspx› ⁃‟Exporting C Functions for Use in C or C++ Language Executables” ‹http://msdn2.microsoft.com/en-us/library/ys435b3s(VS.80).aspx› ⁃‟How To Create 32-bit Import Libraries Without .OBJs or Source” ‹http://support.microsoft.com/kb/131313› rozdział ‟Win32 and COM Development” ‹http://msdn2.microsoft.com/en-us/library/aa139672.aspx› -- / qo |) :@=N%_g=v=a=g_eD_e=c()=d=8! =%!Gn@8're. w8in/ad \ _x/ , ;h-%-a'hA'H4,X0'Xo~xo~xO,R`-%EXp01ITed: *-7/+eh / | ng `-%__%--'__%--'__%--~__%--^%B`/$qV3r[o; &GooMee L o_O http://tech.groups.yahoo.com/group/opRWTng O_o L"EnOF
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads