node 需要使用一个原生模块 折腾了好久
环境什么的搞了大半天 弄好了
可以调用 DLL 的方法 运行
但是发现 有一个 DLL 暴露的是一个 Class 不知道要怎么调用
今天查了好久资料
正常导出方法的 DLL 头文件是这样的
extern "C" int __declspec(dllexport)My_Test(char *a, int b, int c);
extern "C" void __declspec(dllexport)My_Hello(char *a, int b, int c);
nodejs 的调用方法
const dll = ffi.Library( './test.dll', {
// My_Test 是 dll 中定义的函数,两者名称需要一致
// [a, [b,c....]] a 是函数出参类型,[b,c]是 dll 函数的入参类型
My_Test: ['int', ['string', 'int', 'int']], // 可以用文本表示类型
My_Hello: [ref.types.void, ['string', ref.types.int, ref.types.int]] // 更推荐用`ref.types.xx`表示类型,方便类型检查,`char*`的特殊缩写下文会说明
})
但是我哪一个模块导出的是一个 class 不知道要怎么去调用它
class __declspec(dllexport) Person
#pragma once
class __declspec(dllexport) Person
{
private:
int age;
public:
int getAge();
void setAge(int a);
};
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.