你好,
是否可以在 Windows x64 上使用 node.js x64 从 edge.js 中的 .NET 代码调用本机 32 位 dll?
在控制台 .NET 应用程序中,我可以调用旧的 32 位本机 dll(通过 DllImport)。 但是在 edge.js 中使用相同的代码我得到了 BadImageException。 如果我尝试调用 x86 .NET 程序集,我会得到相同的结果。
所以,我必须使用 x86 node.js 因为使用了一些遗留的 x86 组件?
另一个问题,COM-s 怎么样?
我看到 IIS-node 只使用 x86 node.js。 我的应用程序对 x64 没有特殊要求(但当然 x64 版本在 x64 机器上会更好)。 所以我应该使用 x86 版本,不是吗?
如果可以通过 C(本机 dll)访问它,您可能有兴趣构建与 node.js 一起使用的本机模块/包。
您的交互有多复杂,是否可以通过使用管道输入/输出的命令行 exe 公开?
只是提供一些可能更直接的替代解决方案。
谢谢你的答案
在某些情况下,当我有一些使用 native.dll 的 .NET 逻辑时,我想我可以重用 .NET 中的所有代码并从 JavaScript 调用一次。
但在其他情况下,当我可以使用一些逻辑的 JavaScript 代码使用来自本机 dll 的逻辑时,如果我直接使用来自 JavaScript 的本机代码会更好。
在 C# 中,我导入了两个本机函数,它们的签名如下:
[DllImport("library.dll")]
static extern int Func1(byte[] p1, ref int p2, byte[] p3, int p4);
我找到了用于调用 dll-s https://github.com/rbranson/node-ffi 的node.js 包
但我还没有尝试过。 用 node-ffi 调用这种函数有多难?
我正在考虑从数据库中获取二进制文件,然后在本机 dll 中使用一些算法进行解码,并可选择调整它的大小,最后以二进制输出返回到浏览器。 顺便说一句,有人知道任何好的 node.js 包来处理 node.js 中的二进制图像吗?
+1 -- 我想知道是否取得了任何进展? 我的具体用例是我想调用一个 3rd 方 .NET 程序集,该程序集又引用一个 32 位本机 C++ dll。
最有用的评论
+1 -- 我想知道是否取得了任何进展? 我的具体用例是我想调用一个 3rd 方 .NET 程序集,该程序集又引用一个 32 位本机 C++ dll。