Out32 -> unbehandelte Ausnahme ???
-
Hallo,
also ich muss ein C Programm von Windows 98 auf XP SP3 tauglich machen.
Ich benutzte dafür Microsoft Visual Studio 2010 -> MFC.Da ich dir Ports direkt ansprechen muss, will ich inpout32.dll verwenden.
Dazu habe ich folgende Zeilen hier im Forum "geklaut":
typedef void (__stdcall* Out32Proc)( int PortAddress, int Value );
HMODULE hInOutP = LoadLibrary( "inpout32.dll" );
Out32Proc Out32 = (Out32Proc)GetProcAddress( hInOutP, "Out32" );Dazu wird in der Konsole folgendes ausgegeben: C:\WINDOWS\system32\inpout32.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
danach will ich zum Test auf meinem LPT einen Port auf high setzen.
out(0x378, 0x1);
da meldet er dann:
Unbehandelte Ausnahme bei 0x01c65c0b in Messung Laser.exe: 0xC0000096: Privileged instruction.
Woran liegt das? Ich habe die inpout32.dll ja eingebunden, um diese ausnahmen zu erlauben. Liegt es daran, dass die Binärdaten ohne Debuginfo erstellt wurden?
danke schon mal
hanna
-
Hallo Hanna,
Out32(0x378, 0x1);
Herzliche Grüsse
Walter
-
@ walter: sorry habe mich oben verschrieben. In meinem Programm steht natürlich:
Out32(0x378,0x1);
noch irgendwelche ideen woran es liegen könnte?
danke schonmal
-
Hallo Hanna,
Ich nehme an, dass Du InpOutBinaries_1500.zip herunter geladen hast.
- Entpacke das ganze nach zB. C:\InpOut32
- Führe C:\InpOut32\Win32\InstallDriver.exe als Administrator aus
- kopiere C:\InpOut32\Win32\inpout32.dll in das Release und Debug Verzeichnis Deiner App
- kopiere C:\InpOut32\x64\inpout64.dll in das Release und Debug Verzeichnis Deiner App.Eventuell genügt es, wenn Du nur inpout64.dll kopierst, die sollte eigentlich automatisch zwischen 32Bit und 64Bit umschalten.
Edit: Nee, ist genau umgekehrt... die inpout32.dll ist die DLL für 32 und 64 Bit.
Auf der Website http://www.highrez.co.uk/Downloads/InpOut32/default.htm
steht "When the DLL loads for the first time, the appropriate driver is installed and used.
NOTE: Elevated permissions are required in Vista and later to install the driver."Der Driver InpOut.sys wurde bei mir auch stillschweigend NICHT installiert wenn ich als normaler Benutzer die DLL das erste mal geladen haben.
Herzliche Grüsse
Walter