https://github.com/postor/electron-call-dll-with-string
calling functions with string param/return in dll with electronjs
https://github.com/postor/electron-call-dll-with-string
Last synced: 9 months ago
JSON representation
calling functions with string param/return in dll with electronjs
- Host: GitHub
- URL: https://github.com/postor/electron-call-dll-with-string
- Owner: postor
- Created: 2022-03-11T09:12:15.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-03-24T02:30:50.000Z (almost 4 years ago)
- Last Synced: 2025-01-25T18:10:26.509Z (11 months ago)
- Language: C++
- Size: 883 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# electron-call-dll-with-string
calling functions with string param/return in dll with electronjs
在 electronjs 中调用带有字符串参数/返回值的 dll 函数
手把手教程
- [创建dll](./docs/the-dll-project/readme.md)
- [控制台验证](./docs/the-console-project/readme.md)
- [electron 项目](./docs/the-electron-project/readme.md)
## 文件结构
- dll_project vs2019,包含dll和控制台测试调用
- electron_app electron项目,拷贝对应x86/64版本dll过来才可运行
## 代码效果
```
//use ffi and ref to interface with a c style dll
var ffi = require('ffi-napi');
//load the dll. The dll is located in the current folder and named customlib.dll
var customlibProp = ffi.Library('Dll1', {
'concat': ['char *', ['char *', 'char *']]
});
function concat(str1, str2) {
let buf= customlibProp.concat(
Buffer.from(str1, 'utf-8'),
Buffer.from(str2, 'utf-8'))
// console.log(typeof buf,)
return buf.readCString()
}
console.log(concat('abc', 'def'))
console.log(concat('中文', '英文'))
console.log(concat('very veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery veryvery very'
, 'long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long '))
console.log(concat('很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长'
, '的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字的文字'))
```
