现在的位置: 首页 > 综合 > 正文

在c++编译器中的dll导出c!

2012年05月30日 ⁄ 综合 ⁄ 共 525字 ⁄ 字号 评论关闭

 C风格的DLL导出函数的典型方法说到底,DLL是对应C语言的动态链接技术,在输出C函数和变量时显得方便快捷
所以写DLL文件最典型的一种Case:不用C++的类而都是C风格的代码
这种情况要导出函数,有两种方式:

第一种:函数前加相应修饰符

#ifdef __cplusplus 
#define EXPORT extern "C" __declspec (dllexport)
#else
#define EXPORT __declspec (dllexport)
#endif

然后在每一个要导出的函数前面加EXPORT

EXPORT标识符包括储存方式限定词__declspec(dllexport)以及在表头文件按C++模式编译时附加的「C」。因为C++编译器会将函数的名字改变,从而导致导出函数名称变化,用extern "C"就是为了防止这个。C编译器无此问题。

第二种:用def文件

LIBRARY MyDll 
EXPORTS 
Max 
Min

其中LIBRARY语句说明该def文件是属于相应DLL的,EXPORTS语句下列出要导出的函数名称。我们可以在.def文件中的导出函数后加@n,如Max@1,Min@2,表示要导出的函数顺序号,在进行显式连时可以用到它。

抱歉!评论已关闭.