从Java访问DLL中的C#方法
我在尝试从Java调用用C#编写的函数时遇到问题。我已经加载了包含函数的dll 错误消息:从Java访问DLL中的C#方法,java,c#,dll,dllimport,Java,C#,Dll,Dllimport,我在尝试从Java调用用C#编写的函数时遇到问题。我已经加载了包含函数的dll 错误消息: java.lang.UnsatisfiedLinkError: app.clsValidation.validate(Ljava/lang/String;)Ljava/lang/String; 编译成64位dll的C代码: namespace library { public class clsValidation { public string validate(strin
java.lang.UnsatisfiedLinkError: app.clsValidation.validate(Ljava/lang/String;)Ljava/lang/String;
编译成64位dll的C代码:
namespace library {
public class clsValidation {
public string validate(string txt) {
return txt;
}
}
}
Java代码
班级:
package app;
public class clsValidation {
static {
System.loadLibrary("library");
}
public native String validate(String txt);
}
我在Java中如何称呼它:
String txt = "something";
String result = new clsValidation().validate(txt);
这是意料之中的。Java代码将C#DLL视为非托管库。事实并非如此。它不导出可以使用
LoadLibrary
和GetProcAddress
导入的非托管函数
如果希望从.net DLL导出非托管函数,则可以:
其他选项包括通过COM公开功能,而COM很容易从Java中使用。感谢您的指导!现在我知道该找什么了。你说的COM是什么意思?试试网络搜索。我可以这么做,但我想你也可以。我只是想知道COM的意思。。。我在谷歌搜索“COM java”时没有得到任何东西。谢谢。谷歌网站自己。是微软技术公司的。