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