engelmarkus
Erfahrenes Mitglied
Guten Abend zusammen!
Ich habe hier eine kleine DLL in Assembler geschrieben:
Dieses Stückchen Code kompiliere und linke ich folgendermaßen zu einer DLL:
Jetzt kann ich diese DLL in C so benutzen:
Nur habe ich ein Problem, wenn ich das jetzt auch in VB.Net machen möchte:
So gibt es beim Aufruf der Funktion eine Access Violation. Ist in diesem VB.Net-Code ein Fehler?
Ich habe hier eine kleine DLL in Assembler geschrieben:
Code:
[BITS 32]
GLOBAL _CPUID
EXPORT _CPUID
section .code
_CPUID:
mov eax, 1
cpuid
ret
Dieses Stückchen Code kompiliere und linke ich folgendermaßen zu einer DLL:
Dazu benutze ich den Microsoft Incremental Linker.nasm -F null -l %1.lst -f win32 -Ox %1.asm
link %1.obj /DLL /DEBUG /MANIFEST /NODEFAULTLIB /NOENTRY
Jetzt kann ich diese DLL in C so benutzen:
C:
extern "C" int CPUID();
...
int i = CPUID();
Nur habe ich ein Problem, wenn ich das jetzt auch in VB.Net machen möchte:
Code:
<DllImport("cpuid.dll")> _
Function CPUID() As Int32
End Function