Edge: 在 x64 Windows 上的 node.js x64 上从 .NET 调用本机 x86 代码

创建于 2013-04-16  ·  3评论  ·  资料来源: tjanczuk/edge

你好,

是否可以在 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 版本,不是吗?

最有用的评论

+1 -- 我想知道是否取得了任何进展? 我的具体用例是我想调用一个 3rd 方 .NET 程序集,该程序集又引用一个 32 位本机 C++ dll。

所有3条评论

如果可以通过 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。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

agracio picture agracio  ·  6评论

harivasista picture harivasista  ·  5评论

raffaeler picture raffaeler  ·  10评论

timonsku picture timonsku  ·  4评论

mamaso picture mamaso  ·  4评论