从 VBA/VBScript/Visual Basic Classic 调用 Java 库 (JAR)
有 jar 库
本机 C++ 端口尚不可用(作为 DLL)
我需要调用
我有 3 种可能性:
1)等待本机端口准备好 2) 通过 brigde (?) 使用 VB 中的 JAR 库,需要安装 JRE 3) 使用 GCJ 将 JAR 编译为本机 DLL 并从 VBA 使用它
http:// www.microsoft.com/germany/msdn/library/office/OfficeVBAUndDieWindowsAPI.mspx?mfr=true
我认为: 位置。 1很容易,但我必须等待 位置。 3 实际上是不可能的
有关于 pos.3 的想法吗? 2?
谢谢。
There is jar library
native C++ port is not yet available (as DLL)
I need to call from
I have 3 possibilities:
1) Wait until native port is ready
2) Use JAR library from VB via brigde (?), installed JRE required
3) Compile JAR into native DLL using GCJ and use it form VBA
http://www.microsoft.com/germany/msdn/library/office/OfficeVBAUndDieWindowsAPI.mspx?mfr=true
I think:
pos. 1 is easy, but I must wait
pos. 3 is in practice impossible
Is there some ideas about pos. 2?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这取决于您是否希望从 JAR 文件返回值。如果您不这样做,而只是希望执行一个方法,那么您可以使用 VB 中的“Shell”(或 ShellExecute),如下所示:
如果您确实需要返回一个值,那么您很可能需要一个桥 - 此处的类似讨论(对于VB.NET,但原理是相同的): 您可以在 VB.net 程序中使用 Java 库吗?
基于人们创建的大多数桥都是针对 .NET 而不是 VBA/6,因此您可能需要以某种方式创建自己的桥,或者可能创建然后由 VBA 代码使用的 .NET DLL。
It depends on whether you wish to return values from the JAR file or not. If you do not, and just wish to execute a method then you can use a "Shell" (or ShellExecute) from VB as follows:
If you do need to return a value then you will more than likely need a bridge - similar discussion here (for VB.NET, but principle is the same): Can you use Java libraries in a VB.net program?
Based on that most bridges that people have created are for .NET and not for VBA/6 so you would maybe need to create your own somehow, or perhaps create a .NET DLL that is then consumed by your VBA code.
这可以使用 Obba 通过 VBA 宏来执行。
(免责声明:我正在为 Obba 工作)。
This can be performed via a VBA macro using Obba.
(Disclaimer: I am working on Obba).
当您需要两种不同的技术来表达时,可以使用多种方法,请使用以下对象/方法出版物:
根据您将采用的解决方案的复杂性。
调用“java.exe”在虚拟机中运行该库,您可以使用外部资源生成输出,但只有前 3 个用于在异构解决方案中交换对象。
There are couple approaches to be used when you require 2 different technologies to speak, go for Objects/Methods publications using:
Depending on the complexity you will take your solution.
Calling 'java.exe' runs the library in a VM, you can produce an output using a external resource but only the 3 first are meant to exchange objects in a heterogen solution.