优化 DLL 加载,添加 stdcall 约定以支持 Windows 32位 DLL
This commit is contained in:
@@ -71,17 +71,23 @@ function loadDll() {
|
||||
});
|
||||
lib = koffi.load(dllPath);
|
||||
|
||||
// 尝试使用 stdcall 约定,这对于 Windows 32位 DLL 很常见
|
||||
// 如果函数名被修饰(如 _Syn_FindUSBReader@0),__stdcall 会自动处理
|
||||
const stdcall = "__stdcall";
|
||||
|
||||
return {
|
||||
Syn_FindUSBReader: lib.func("int Syn_FindUSBReader()"),
|
||||
Syn_USBOpenPort: lib.func("int Syn_USBOpenPort(int)"),
|
||||
Syn_USBClosePort: lib.func("int Syn_USBClosePort(int)"),
|
||||
Syn_FindUSBReader: lib.func(`${stdcall} int Syn_FindUSBReader()`),
|
||||
Syn_USBOpenPort: lib.func(`${stdcall} int Syn_USBOpenPort(int)`),
|
||||
Syn_USBClosePort: lib.func(`${stdcall} int Syn_USBClosePort(int)`),
|
||||
Syn_USBStartFindIDCard: lib.func(
|
||||
"int Syn_USBStartFindIDCard(int, uint8*, int)"
|
||||
`${stdcall} int Syn_USBStartFindIDCard(int, uint8*, int)`
|
||||
),
|
||||
Syn_USBSelectIDCard: lib.func(
|
||||
"int Syn_USBSelectIDCard(int, uint8*, int)"
|
||||
`${stdcall} int Syn_USBSelectIDCard(int, uint8*, int)`
|
||||
),
|
||||
Syn_ReadMsg: lib.func(
|
||||
`${stdcall} int Syn_ReadMsg(int, int, _Out_ IDCardData*)`
|
||||
),
|
||||
Syn_ReadMsg: lib.func("int Syn_ReadMsg(int, int, _Out_ IDCardData*)"),
|
||||
};
|
||||
} catch (err) {
|
||||
parentPort.postMessage({
|
||||
|
||||
Reference in New Issue
Block a user