waveInOpen() gibt 2 zurück
-
Hi!
waveInOpen() gibt aus irgend einem Grund einen Wert zurück, den die Funktion laut Definition gar nicht zurück geben dürfte. Die Funktion gibt den Wert 2 zurück, obwhol die einzigen Rückgabewerte laut msdn folgende sein dürften:
MMSYSERR_NOERROR Success.
MMSYSERR_ALLOCATED Specified resource is already allocated.
MMSYSERR_BADDEVICEID Specified device identifier is out of range.
MMSYSERR_NODRIVER No device driver is present.
MMSYSERR_NOMEM Unable to allocate or lock memory.
WAVERR_BADFORMAT Attempted to open with an unsupported waveform-audio format.Hat jemand eine Idee wie ich nun herausfinde was 2 bedeutet bzw. was ich falsch mache?
PS: Das Programm läuft übrigens unter Vista 32 bit, vielleicht hängt es damit zusammen...
Danke für eure Hilfe!
-
Schau mal im Headder der du eingebunden hast da steht:
#define MMSYSERR_BASE 0 ... ... #define MMSYSERR_NOERROR 0 /* no error */ #define MMSYSERR_ERROR (MMSYSERR_BASE + 1) /* unspecified error */ #define MMSYSERR_BADDEVICEID (MMSYSERR_BASE + 2) /* device ID out of range */ //<-Der Fehler ist also MMSYSERR_BADDEVICEID #define MMSYSERR_NOTENABLED (MMSYSERR_BASE + 3) /* driver failed enable */ #define MMSYSERR_ALLOCATED (MMSYSERR_BASE + 4) /* device already allocated */ #define MMSYSERR_INVALHANDLE (MMSYSERR_BASE + 5) /* device handle is invalid */ #define MMSYSERR_NODRIVER (MMSYSERR_BASE + 6) /* no device driver present */ #define MMSYSERR_NOMEM (MMSYSERR_BASE + 7) /* memory allocation error */ #define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE + 8) /* function isn't supported */MfG Tim
-
Hallo,
die Funktion darf auch 2 zurückgeben, denn:
// in mmsystem.h steht: #define MMSYSERR_BASE 0 ... #define MMSYSERR_BADDEVICEID (MMSYSERR_BASE + 2) /* device ID out of range */MfG,
Probe-Nutzer
-
Ok, was bedeutet nun der Fehler bzw. wie kann ich ihn beheben?
-
Habe vergessen den Funktionsaufruf zu posten:
MMRESULT rv = waveInOpen(&voice_recHandle, WAVE_MAPPER, &waveform,(DWORD_PTR)voice_recCallback,0,CALLBACK_FUNCTION);Wie kann die device ID nicht im gültigen Bereich sein, wenn ich doch die vordefinierte Konstante WAVE_MAPPER verwende???
-
Es Funktioniert übrigens auf meinem XP Laptop. Auf meinem Vista 32bit PC wird MMSYSERR_BADDEVICEID zurückgegeben. Warum???