FM: falscher Parameter
-
Hallo an Alle!
Habe folgendes Problem: ich habe in VC++6.0 + SDK + NTDDK ein Prog für Win2k-Oberflächen geschrieben, mit den Setupapi-Funktionen. Funzt prima. Jetzt muss ich das selbe Prog in W98 SE realisieren. Nun bekomme ich bei mindestens zwei Funktionen(SetupDiSetDeviceRegistryProperty und SetupDiCreateDeviceInfo) bei der Ausführung! die Fehlermeldung "falsche Parameter", ohne dass ich weiss woran es liegt. Beim Kompilieren kommt kein Fehler! Kann mir jemand sagen, wie ich heraus finden kann welcher Paramter falsch ist, was es da für Unterschiede geben kann, die erst zur Laufzeit zu Problemen führen und evtl. Tips, was ich ändern könnte. Wenn ich mich unklar ausgedrückt habe, dann sagt das bitte, habe noch nicht so viel Forum-Erfahrung.
Danke im Voraus!!!
-
Hier mal den Code zum testen.
#include <windows.h>
#include <setupapi.h>
#include <stdio.h>
#define MAX_CLASS_NAME_LEN 10LPTSTR err();
void main(void)
{
PCTSTR pctstrPath = "c:\\blabla.inf";
LPGUID lpguid = NULL;
PTSTR ptstrClassName = NULL;
if(!SetupDiGetINFClassA(pctstrPath, lpguid, ptstrClassName, MAX_CLASS_NAME_LEN, NULL))
printf("%s\n",err());
else
printf("%s\n%s\n", lpguid, ptstrClassName);
}LPTSTR err()
{
LPVOID lpMsgBuf;
FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL,
GetLastError(), 0, (LPTSTR) &lpMsgBuf, 0, NULL);
return (LPTSTR)lpMsgBuf;
}