我有来自第三方的SDK。我没有源代码,只有header,dll和lib文件。此SDK提供C API以通过USB与设备通信。我想在Javascript中使用这个SDK。
我正在搜索这个主题,并且有一些方法。但是,根据我的理解,他们每个人都有一些难以适应我的情况:
欢迎任何想法/建议!
编辑1:上下文是我想将设备中的数据导入浏览器或独立的node-webkit应用程序。与在浏览器中获取地理定位信息的用例类似。 一般来说,我不认为我的问题(使用带有JS的C ++组件)是一个奇怪的想法。例如,Mozilla在C ++中开发了许多XPCOM组件,然后用XPConnect包装,以便这些组件可以被Firefox中的Javascript或XUL项目使用。但是这种方法非常耗费人力,并且过于依赖Mozilla的工具链。 Node js看起来是一个很有前途的选择。 Node-webkit基本上和XUL一样:帮助构建/运行基于浏览器的跨平台GUI应用程序。
答案 0 :(得分:1)
使用正确的工具完成工作。
你的应用程序无论如何都只是Windows,因此请使用过多的工具。
如果您想在HTML / JavaScript中构建GUI,您仍然可以。只需将您的应用程序作为您编写GUI的HTML元素的包装。这样GUI就是HTML,但应用程序的其余部分可以本地与您的.dll对话。这将为您和您的用户提供良好的体验。
如果您带上浏览器,除了痛苦之外什么都没有。所有浏览器都在努力制作您想要的东西。加载本机代码只不过是浏览器制造商的安全性,稳定性和兼容性问题。
唯一的另一种干净方式是将您的应用程序编写为一种SaaS应用程序。即,分为两部分,一个服务器组件,作为本机Windows应用程序编写,加载.dll并提供一个HTTP服务器,用于提供HTML + JS GUI组件。这种方法是否有意义取决于您的应用程序的功能。如果预计在一台机器上使用它,那么这会给用户带来不必要的痛苦。如果将.dll加载到一台计算机上然后远程访问它是有意义的,或者在另一台计算机或移动应用程序上访问它,那么它可能是有意义的。一些以这种方式工作的应用程序包括SABnzbd,Plex媒体服务器,Transmission有这样的模式,任何打算在NAS上运行的东西等。