一部のデバイスのシリアル番号を取得するために HidD_GetSerialNumberString を取得する際に問題が発生しています。一部のデバイスでは問題なく動作しますが、他のデバイスではシリアル番号として「ÿÿÿ」しか取得できません。私はそれが Delphi 2009 と関係があり、Unicode であると疑っていますが、私はそれを理解することができません。これに対する解決策はありますか?
編集 (宣言) :
type
THidD_GetSerialNumberString = function(HidDeviceObject: THandle; Buffer: PWideChar; BufferLength: Integer): LongBool; stdcall;
var
HidD_GetSerialNumberString: THidD_GetSerialNumberString;
//in the LoadHid-function
@HidD_GetSerialNumberString := GetModuleSymbolEx(HidLib, 'HidD_GetSerialNumberString', Result);
使用法 :
var
test : PWideChar;
...
GetMem(test, 512);
if HidD_GetSerialNumberString(HidFileHandle, Test, 512) then
FSerialNumber := test; //FSerialNumber is WideString
FreeMem(test);