<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[Erledigt] asm dll in winanwendung benutzen.]]></title><description><![CDATA[<p>Hi, ich habe eine dll in assembler, die ich gerne in einem cpp benutzen würde.</p>
<p>der asm-code der dll:</p>
<pre><code class="language-asm">.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
includelib kernel32.lib
include user32.inc
includelib user32.lib

c_BarrierX equ 800
c_winXtolerance equ 75
c_winYtolerance equ 75
WM_MOUSEHOOK equ WM_USER + 6

.data
hInstance dd 0

.data?
hHook dd ?
hWnd dd ?

.code
DllEntry proc hInst:HINSTANCE, reason:DWORD, reserved1:DWORD
	push hInst
	pop hInstance
  mov  eax,TRUE
  ret
DllEntry Endp

MouseProc proc nCode:DWORD,wParam:DWORD,lParam:DWORD
	assume edx:PTR MOUSEHOOKSTRUCT

  invoke PostMessage,hWnd,WM_MOUSEHOOK, wParam, lParam

	mov edx,lParam

  invoke CallNextHookEx,hHook,nCode,wParam,lParam

  xor eax, eax
  xor edx, edx
	assume edx:nothing
	ret
MouseProc endp

InstallHook proc hwnd:DWORD, targetThread:DWORD
	push hwnd
	pop hWnd
	invoke SetWindowsHookEx,WH_MOUSE,addr MouseProc,hInstance,targetThread
	mov hHook,eax
	ret 
InstallHook endp

UninstallHook proc
	invoke UnhookWindowsHookEx,hHook
	ret
UninstallHook endp

End DllEntry
</code></pre>
<p>die def-datei:</p>
<pre><code>LIBRARY MouseHookDLL
EXPORTS 
MouseProc
InstallHook
UninstallHook
</code></pre>
<p>und die assembler/Linker Befehle:</p>
<pre><code>%BINDIR%\Ml.exe /nologo /c /coff /Cp /I%INCLUDE% %HOOKDLL%.asm
if errorlevel 1 goto errasm
%BINDIR%\Link.exe /nologo /SECTION:.bss,S /SUBSYSTEM:WINDOWS /LIBPATH:%LIBS% /DLL /DEF:%HOOKDLL%.def %HOOKDLL%.obj
if errorlevel 1 goto errlink
</code></pre>
<p>das Bauen funktioniert, es wird eine dll und eine lib erstellt.</p>
<p>Ich schaff es aber nicht die dll einzubinden.<br />
in den projekteinetellungen habe ich die lib eingebunden.</p>
<p>im cpp code habe ich foilgende forwardeklarationen:</p>
<pre><code class="language-cpp">extern DWORD WINAPI InstallHook(HWND msgReceiver, DWORD threadIDToHook);
extern void WINAPI UninstallHook();
</code></pre>
<p>Hoffe jemand von euch hat nen Tip, warum der Linker die Symbole im Code nicht auflösen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/223599/erledigt-asm-dll-in-winanwendung-benutzen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 05:38:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/223599.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Sep 2008 12:06:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Erledigt] asm dll in winanwendung benutzen. on Sun, 28 Sep 2008 16:00:15 GMT]]></title><description><![CDATA[<p>Hi, ich habe eine dll in assembler, die ich gerne in einem cpp benutzen würde.</p>
<p>der asm-code der dll:</p>
<pre><code class="language-asm">.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
includelib kernel32.lib
include user32.inc
includelib user32.lib

c_BarrierX equ 800
c_winXtolerance equ 75
c_winYtolerance equ 75
WM_MOUSEHOOK equ WM_USER + 6

.data
hInstance dd 0

.data?
hHook dd ?
hWnd dd ?

.code
DllEntry proc hInst:HINSTANCE, reason:DWORD, reserved1:DWORD
	push hInst
	pop hInstance
  mov  eax,TRUE
  ret
DllEntry Endp

MouseProc proc nCode:DWORD,wParam:DWORD,lParam:DWORD
	assume edx:PTR MOUSEHOOKSTRUCT

  invoke PostMessage,hWnd,WM_MOUSEHOOK, wParam, lParam

	mov edx,lParam

  invoke CallNextHookEx,hHook,nCode,wParam,lParam

  xor eax, eax
  xor edx, edx
	assume edx:nothing
	ret
MouseProc endp

InstallHook proc hwnd:DWORD, targetThread:DWORD
	push hwnd
	pop hWnd
	invoke SetWindowsHookEx,WH_MOUSE,addr MouseProc,hInstance,targetThread
	mov hHook,eax
	ret 
InstallHook endp

UninstallHook proc
	invoke UnhookWindowsHookEx,hHook
	ret
UninstallHook endp

End DllEntry
</code></pre>
<p>die def-datei:</p>
<pre><code>LIBRARY MouseHookDLL
EXPORTS 
MouseProc
InstallHook
UninstallHook
</code></pre>
<p>und die assembler/Linker Befehle:</p>
<pre><code>%BINDIR%\Ml.exe /nologo /c /coff /Cp /I%INCLUDE% %HOOKDLL%.asm
if errorlevel 1 goto errasm
%BINDIR%\Link.exe /nologo /SECTION:.bss,S /SUBSYSTEM:WINDOWS /LIBPATH:%LIBS% /DLL /DEF:%HOOKDLL%.def %HOOKDLL%.obj
if errorlevel 1 goto errlink
</code></pre>
<p>das Bauen funktioniert, es wird eine dll und eine lib erstellt.</p>
<p>Ich schaff es aber nicht die dll einzubinden.<br />
in den projekteinetellungen habe ich die lib eingebunden.</p>
<p>im cpp code habe ich foilgende forwardeklarationen:</p>
<pre><code class="language-cpp">extern DWORD WINAPI InstallHook(HWND msgReceiver, DWORD threadIDToHook);
extern void WINAPI UninstallHook();
</code></pre>
<p>Hoffe jemand von euch hat nen Tip, warum der Linker die Symbole im Code nicht auflösen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1589605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1589605</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Sun, 28 Sep 2008 16:00:15 GMT</pubDate></item><item><title><![CDATA[Reply to [Erledigt] asm dll in winanwendung benutzen. on Sun, 28 Sep 2008 15:03:53 GMT]]></title><description><![CDATA[<p>Ich glaube wenn du einen C++ Compiler verwendest, solltest du die Funktionen die du von der *.dll importierst mit exter &quot;C&quot; statt nur &quot;extern&quot; deklarieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1589700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1589700</guid><dc:creator><![CDATA[Gast1214148]]></dc:creator><pubDate>Sun, 28 Sep 2008 15:03:53 GMT</pubDate></item><item><title><![CDATA[Reply to [Erledigt] asm dll in winanwendung benutzen. on Sun, 28 Sep 2008 15:24:32 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Ich Trottel!<br />
Danke, jett gehts</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1589715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1589715</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Sun, 28 Sep 2008 15:24:32 GMT</pubDate></item></channel></rss>