问题是这样的,c++ 运行的时候是采用gbk 格式的,nodejs 运行的时候,是以utf-8 模式的,当我使用nodejs 调用c++ 会出现乱码,具体代码如下
var ffi = require('ffi-napi');
var ref = require('ref-napi')
const StructType = require('ref-struct-napi');
//构造一个结构体
const WpsResult = StructType({
status: ffi.types.bool,
message: ffi.types.CString,
})
const dllLib = ffi.Library(dllPath, {
'pollWpsResult': [WpsResult, []]
});
//执行调用
const result = dllLib.pollWpsResult();
//打印出来的result.message 是乱码的
c++ 代码如下
struct WpsResult
{
bool status;
const char* message;
WpsResult() {
this->status = false;
//this->setMessage("正在初始化");
cout << "初始化" << this->status << "\n";
this->message = "tPK/qs7EtbXKp7Dco6zH67zssunOxLz+uPHKvQ==";
}
};
//导出的接口,给nodejs 调用的
EXPORT WpsResult* pollWpsResult()
{
WpsResult result{};
return &result;
}
备注:此问题求有相关经验的同学解决,gpt是无法解决的,一味从gpt复制粘贴的朋友不用回答了,在此谢过~