ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
634
634
EMPFEHLEN
-
06.05.09 20:22 #1
- Registriert seit
- Sep 2007
- Beiträge
- 473
Guten Abend zusammen!
Ich habe hier eine kleine DLL in Assembler geschrieben:
Code asm:1 2 3 4 5 6 7 8 9 10
[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:
Code c:1 2 3
extern "C" int CPUID(); ... int i = CPUID();
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?Code vbnet:1 2 3
<DllImport("cpuid.dll")> _ Function CPUID() As Int32 End Function
-
14.05.09 15:26 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Probier's mal so:
GrußCode vbnet:1 2 3
<DllImport("cpuid.dll", CallingConvention := CallingConvention.Cdecl)> _ Function CPUID() As Int32 End Function
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
15.05.09 18:52 #3
- Registriert seit
- Sep 2007
- Beiträge
- 473
Jetzt ist es interessanterweise so, dass sich verschiedene Sachen abwechseln. Trotz Breakpoint beendet sich das Programm einfach, ohne dass eine Meldung über eine Exception im Direktfenster kommt. Ein anderes mal gibt es eine StackOverFlowException in "Unbekanntes Modul". Ganz am Anfang war auch einmal die AccessViolation
.
Soll ich die Dateien mal anhängen?
-
15.05.09 22:07 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Ja, häng das Projekt ruhig mal an.
Bei mir funktioniert ein Mini-Testprogramm problemlos.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
15.05.09 22:58 #5
- Registriert seit
- Sep 2007
- Beiträge
- 473
So, bitteschön
.
Ich hoffe, das hängt nicht damit zusammen, dass ich ein 64-bit-Windows verwende. Andererseits hab ich alles so eingestellt, dass es 32-bit Code erzeugt, und die C-Version geht ja.Geändert von engelmarkus (15.05.09 um 23:00 Uhr)
Ähnliche Themen
-
access violation
Von alice in wunderlan im Forum Cinema 4DAntworten: 3Letzter Beitrag: 26.02.10, 12:51 -
[C] Pointer: Access Violation
Von nickoff im Forum C/C++Antworten: 2Letzter Beitrag: 30.03.08, 12:21 -
Access Violation!?
Von shader09 im Forum C/C++Antworten: 3Letzter Beitrag: 03.03.08, 15:39 -
[c++]Access Violation am Programmende
Von nacho25 im Forum C/C++Antworten: 21Letzter Beitrag: 25.02.05, 23:11 -
access vîolation
Von derGugi im Forum Delphi, Kylix, PascalAntworten: 2Letzter Beitrag: 15.04.03, 16:10





Zitieren
Login





