我无法让 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);