中易网

java是怎么调用c、c++的dll的

答案:2  悬赏:60  
解决时间 2021-03-22 00:00
java是怎么调用c、c++的dll的
最佳答案
用jna,大致这样
把Dll文件放在C:\WINDOWS\system32下,这是window动态链接库的默认存储路径。
新建类dllTest.java,这个名和DLL的名相同,我当初就不知道,费劲周折。代码如下:
import com.sun.jna.Library;
import com.sun.jna.Native;
public class dllTest {
public interface MyDll extends Library {//这个接口是dll与java程序的“连接”
MyDll INSTANCE = (MyDll)Native.loadLibrary("MyDll", MyDll.class);
int Max(int a, int b);//把用到的dll中的函数声明一下,用不到的就不用写了
}
public static void main(String[] args) {
int a = MyDll.INSTANCE.Max(3, 5);
System.out.println("最大数为" + a);
}
}
全部回答
1为了使c能调用c++写的dll。c++中使用extern "c"{ }修饰该接口即可 这个原因你应该知道吧大概意思是告诉c++编译器这段代码用c编译器编译 编译之后的结果是c方式的而不是c++方式的。 2但是c中不识别extern "c"。 综上两点,在dll头文件中常这样写,如下: 意思就是编译的时候编译成c方式。但是包含头文件时,因为是c调用所以会忽略掉extern "c" #ifdef __cplusplus extern "c" { #endif 。。。。。。。。。。。。 #ifdef __cplusplus } #endif 这个你也明白吧。 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
5月去欧洲旅游,天气合适吗? 会有会遇到什么极
为什么尸体派对CP5我总是进不了理科室
CNOC和CNOOC分别是哪儿啊?
女人为什么那么现实?
opple 欧普照明泾县哪里有店
笔记本触摸板按键处流了点饮料进去
东芝泰格TEC B-452ts条码打印机打印吊牌红灯
在天使投资及风险投资过程中,需要随时灵活的
小义乌砂锅面怎么样
什么的歌声什么的翅膀填空
tk舞蹈工作室(丰臣国际广场店)地址在什么地方
北京的种植牙收费是多少
小学六年级语文上册第11课段意
缅甸溶洞蜜的收藏价值
路灯为什么是黄色的
推荐资讯
吴王村怎么去啊,我要去那办事
辉腾W12的自动变速箱油加多少
请问,女人为什么要化妆?
大竹到稻城亚丁多远
武汉有哪里有swatch手表的专卖店?
羊角风患者生活中可以多吃什么呢?
人需要一个活着的理由,而最好的理由....?
张云龙是怎么出道
京东取消订单有一个锁定是什么
( 一个数 )除以3.2等于5.6余2.7这个数是多少?
玄幻小说中的绝招名称
我和情人分手了,因为他伤害了我,他来找我,我
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?