Bonjour,
Je souhaite utiliser les API de Windows pour récupérer la liste des périphériques de capture disponibles.
Voici mon code :
Le problème, c'est que j'ai, à la sortie de ma fonction une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function capGetDriverDescriptionA(wDriverIndex:Word; lpszName:PAnsiChar; cbName:Integer; lpszVer:PAnsiChar; cbVer:Integer):Boolean; stdcall; external 'avicap32.dll'; function GetDriverList:TStringList; var wIndex : Word; szDeviceName : PAnsiChar; szDeviceVersion : PAnsiChar; begin FillChar(szDeviceName, 80, 0); FillChar(szDeviceVersion, 80, 0); Result := TStringList.Create; for wIndex:=0 to 9 do begin if capGetDriverDescriptionA(wIndex, szDeviceName, 80, szDeviceVersion, 80) then Result.Add(szDeviceName + ' ' + szDeviceVersion) else Break; end; end;
J'ai également essayé avec le code suivant :access violation at 0x00000000: read of address 0x00000000
Là, j'ai une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function GetDriverList:TStrings; var wIndex : Word; szDeviceName : PAnsiChar; szDeviceVersion : PAnsiChar; begin Result := TStringList.Create; for wIndex:=0 to 9 do begin if capGetDriverDescriptionA(wIndex, szDeviceName, 80, szDeviceVersion, 80) then Result.Add(StrPas(szDeviceName) + ' ' + StrPas(szDeviceVersion)) else Break; end; end;
Pouvez-vous m'aider à corriger ce problème ?Exception 'first chance' à $7687B727. Classe d'exception EAccessViolation avec un message 'Violation d'accès à l'adresse 7689DBEF dans le module 'KERNELBASE.dll'. Ecriture de l'adresse 12E8FEDC'. Processus WebCam.exe (7240)
Merci,
ZiP
Partager