Electron-VUE 加载.Net DLL 填坑系列

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   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值