🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
4 messages
4 total messages Started by Remek Sat, 24 Nov 2007 13:18
Argumenty funkcji
#1564
Author: Remek
Date: Sat, 24 Nov 2007 13:18
20 lines
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
#1565
Author: rwt
Date: Mon, 26 Nov 2007 09:41
10 lines
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
#1566
Author: Remek
Date: Mon, 26 Nov 2007 12:14
14 lines
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
#1567
Author: rwt
Date: Tue, 27 Nov 2007 14:38
30 lines
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