000
22.09.2005, 21:42 Uhr
RedEagle
|
Hi Ich hab mit fasm eine DLL gemacht:
asm: |
; DLL creation example
format PE GUI 4.0 DLL entry DllEntryPoint
include 'win32a.inc'
section '.code' code readable executable
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved mov eax,TRUE ret endp
; void soundoff(); proc soundoff in al,0x61 and al,11111100b out 0x61,al ret endp
; void sound(int freq); proc sound freq mov ebx,[freq] mov ax,0x34DD ;Frequenz wird in bx übergeben mov dx,0x0012 cmp dx,bx jnc done div bx mov bx,ax in al,0x61 test al,3 jnz A99 or al,3 out 0x61,al mov al,0x0B6 out 0x43,al A99: mov al,bl out 0x42,al mov al,bh out 0x42,al done: ret endp
section '.idata' import data readable writeable
library kernel,'KERNEL32.DLL',\ user,'USER32.DLL'
section '.edata' export data readable
export 'PCLAUTSPR.DLL',\ soundoff,'soundoff',\ sound,'sound'
section '.reloc' fixups data discardable
|
Wie verwende ich die DLL jetzt für meine C/C++ programme?? Ich hab ja nur die *.dll !
Ich hab einfach von hand ne *.hpp - Datei geschrieben:
C++: |
#ifndef pclautspr #define pclautspr void soundoff(); void sound(int freq); #endif
|
und die *.dll hab ich mit LoadLibrary geladen (hab ja keine *.lib bzw *.a) Aber ich bekomme immer den Linker-Error
Fehler: |
[Linker error] undefined reference to `soundoff()' [Linker error] undefined reference to `sound(int)'
|
-- MFG RedEagle |