c调用c++编的dll,c++调用c编写的dll,extern “C”的用法

c和c++不能直接相互调用,主要是因为c++有重载函数的功能,为了区分重载函数,编译器会在函数名上加上一些修饰用符号,而c不这么做。为了让c与c++的程序能够相互调用对方的库,就有了extern “C”。注意,extern “C” 是c++的规范,所以只能出现在c++的代码里面,加在函数声明前,表示函数是用c的规范。

1.c代码调用c++dll

编译c++dll的要点
  • 供c调用的c++的函数接口不能包含c++特有的东西。
  • 在编译生成供c代码调用的dll时,头文件的中的函数声明前要加上extern “C” 告诉编译器按照c规范处理函数名。
  • 编译完成后,提供给c使用的头文件里面不能包含extern “C”,可以使用宏开关解决,也可以重新写个头文件。

c代码调用c++dll的要点

  • 和正常调用c函数一样

2.c++调用c语言dll

编译c预言 dll的要点

  • c语言dll正常编写,不需要做额外处理

c++调用c语言dll的要点

  • 在包含c的头文件或声明来自c的函数时需要加上extern "C", 建议这么做



总结,不管谁调用谁,c代码不需要特殊处理,只要在c++代码的正确位置加上extern ”C" 即可。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值