【发布时间】:2012-04-08 12:36:06
【问题描述】:
我正在尝试从 JAVA 程序中调用第 3 方 .NET DLL(取自 here)。 在查看here 和here 之后,我设法让整个东西编译并运行。但是在运行 .NET 代码时出现异常:
Java 运行时环境检测到致命错误
只有当我尝试从 .NET DLL 中访问另一个 .net 对象和方法时才会发生这种情况:
JNIEXPORT void JNICALL Java_test_broadcast
(JNIEnv *, jobject)
{
// Instantiate the MC++ class.
IManagedWrapper* t = IManagedWrapper::CreateInstance();
// The actual call is made.
t->Broadcast();
}
void ManagedWrapper::Broadcast(std::string message)
{
//Uncommenting the following line will raise the error
//IXDBroadcast^ broadcast = XDBroadcast::CreateBroadcast(XDTransportMode::WindowsMessaging);
}
我设法创建了一个 .NET DLL,它链接到上述代码并按需要工作。
如何从 Java 代码中调用 .NET 对象和方法?
【问题讨论】:
-
Google 向我展示了:JNI4NET 和 Calling .Net Dlls from Java code without using regasm.exe。如果您愿意并坚持下去,它可能会为您提供更多解决方案。
-
谢谢!我在这里发帖前找了 2 天,但我从未遇到过您发布的第二个链接。成功了!
-
不客气,祝你好运。
-
我想知道是否有人拥有@HovercraftFullOfEels 引用的第二个链接中的代码 - 它已从页面中消失。
标签: java .net dll java-native-interface