繁体   English   中英

在没有第三方库的Java中使用C#DLL

[英]Using a C# DLL in Java without 3rd party libraries

我有一个需要在Java中使用的C#dll。 该DLL带有一个.chm文件,该文件概述了类的方法/字段。 在做了研究之后,我决定最好的方法是创建一个C ++ cli包装器并从那里使用JNI来获得我需要的Java。

设计使用类的方式就像

MyCSharpClass myC = MyCSharpClass.Instance; //Instance is a static field of MyCSharpClass
myC.setState("ON"); // Accepts a string, returns an int
myC.getNetwork(); // Returns a string

Instance是一个静态字段,两个方法调用返回int。

我试图将我的包装器放在这个例子的基础上: http//pragmateek.com/using-c-from-native-c-with-the-help-of-ccli-v2/

我没有使用JNI从Java调用C ++ cli DLL的问题,除了当我尝试在C ++ cli中从C#实例化类实例时,JVM崩溃了。

_private->myCSharpClass= gcnew MyDLL::MyCSharpClass(); 

不起作用,因为类没有构造函数和

_private->myCSharpClass= MyDLL::MyCSharpClass::Instance;

也不起作用。

我很遗憾该做什么。 我已经阅读了几个小时的帖子和例子而没有任何真正的成功 任何帮助将非常感激。

假设Instance成员是属性而不是字段,您可以尝试以下方式吗?

_private->myCSharpClass= MyDLL::MyCSharpClass::get_Instance()

在C#中,属性实际上是方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM