从Java调用.NET DLL

时间:2011-12-12 16:49:03

标签: java .net c++ java-native-interface native

我正在尝试使用Java代码中的.NET DLL(通过C ++本机代码)。

Flow就是这样。

  1. 使用visual studio 2010中的C#类库类型项目创建.net DLL。

  2. 创建本机C ++代码(控制台应用程序)以使用此DLL Using this step-by-step guide from Microsoft此代码能够成功调用DLL代码。

  3. 用C ++ DLL项目中的一些本机方法,生成的头文件和实现的头文件编写Java代码(从相关方法的示例中移动原始代码,使一些变量全局化)。

  4. 此DLL已成功加载,但在为托管类创建接口指针时代码失败。

    从微软指南中查看snipper

     // Create the interface pointer.
    ICalculatorPtr pICalc(__uuidof(ManagedClass));
    

    请注意,此调用会成功返回控制台应用程序,但通过JNI流程调用时,JVM崩溃。

1 个答案:

答案 0 :(得分:1)

我的java代码在一个64位的JVM中运行,替换为一个32位的JVM,而且没有更多的JVM崩溃。