Electron-VUE 可以挂载C++ DLL 和.Net DLL
这里主要说明.Net DLL 的挂载中遇到的问题
1.如何挂载
项目需要加载核心组件
electron-edge-js
下面调用示例
//你的页面,我这里是home.vue
const { ipcRenderer: ipc } = require("electron");
var path = require("path");
var edge = require("electron-edge-js");
let testLink = edge.func({
assemblyFile: path.join(__static, "AutoEntity.Core.dll"),//dll地址
typeName: "AutoEntity.Core.SqlServerHelper",//dll里的那个类
methodName: "TestLink",//SqlServerHelper类的TestLink方法
});
//electron-edge规定.net暴露给它的方法必须是Func<object,Task<object>>,返回的类型是obj,我试过返回其他的类型,结果报错,哈哈,搞不懂搞不懂
public async Task<object> Add(object input)
{
return await Task.Run(() =>
{
var link = JsonConvert.DeserializeObject<LinkDto>(input.ToString());
var conn = new SqlConnection(link.ConnectionString);
try
{
conn.Open();
if (conn.State == ConnectionState.Open)
{
conn.Close();
conn.Dispose();
return new JsonResultFormat(true, "连接成功");
}
return new JsonResultFormat(false, "连接失败");
}
catch (Exception ex)
{
conn.Close();
return new JsonResultFormat(false, ex.Message);
}
});
}
这边要注意 版本之间对应 请上官网匹配
这里有个注意点 就是node.js 是有64位 32位 版本
调用的.Net DLL 要是32位的 就使用32位的node.js 在切换Node.JS 之后 可能还会报 无法加载的问题,那就直接把项目里面的插件清理干净 直接npm install