做dll时是否可以不要def文件?
来源:互联网 发布:手机淘宝店面设计 编辑:程序博客网 时间:2024/05/01 01:00
在VC++中,如果生成DLL可以不使用.def文件。你只需要在VC++的函数定义前要加__declspec(dllexport)修饰就可以了。但是使用__declspec(dllexport)和使用.def文件是有区别的。如果你的DLL是提供给VC++用户使用的,你只需要把编译DLL时产生的.lib提供给用户,它可以很轻松地调用你的DLL。但是如果你的DLL是供VB、PB、Delphi用户使用的,那么会产生一个小麻烦。因为VC++对于__declspec(dllexport)声明的函数会进行名称转换,如下面的函数:
__declspec(dllexport) int __stdcall IsWinNT()
会转换为IsWinNT@0,这样你在VB中必须这样声明:
Declare Function IsWinNT Lib "my.dll" Alias "IsWinNT@0" () As Long
@的后面的数由于参数类型不同而可能不同。这显然不太方便。所以如果要想避免这种转换,就要使用.def文件方式。
EXPORTS后面的数可以不给,系统会自动分配一个数。对于VB、PB、Delphi用户,通常使用按名称进行调用的方式,这个数关系不大,但是对于使用.lib链接的VC程序来说,不是按名称进行调用,而是按照这个数进行调用的,所以最好给出。
C#在对dll进行调用的时候,与vb,pb,delphi用户调用dll的方式相同,需要有def文件来制定导出的接口,这样c#才能够认得到所要导出的接口,没有def文件的dll文件在c#中不能被调用。
- 做dll时是否可以不要def文件?
- dll中的.def文件写法
- 使用 DEF 文件导出 DLL
- Dll 库 DEF文件详解
- dll函数与def文件
- 使用 DEF 文件导出 DLL
- 使用Def文件导出dll
- [DLL]使用def文件从dll导出
- 使用Def文件导出Dll文件
- dll 导出文件不能使用def文件
- 使用Def文件导出Dll文件
- 使用Def文件导出Dll文件
- 使用Def文件导出Dll文件
- 用.DEF文件导出DLL中的函数
- 用.DEF文件导出DLL中的函数
- DLL的模块定义文件(.DEF)
- DLL 中 .DEF文件的使用
- Windows dll编写与def文件
- inverse和cascade
- ASP项目中的通用条件查询模块http://www.lesun.org/html/2002-12/8451.htm
- 使用DataReader还是DataSet?
- ASP.NET2.0MasterPage使用技巧总结
- TreeView使用集锦
- 做dll时是否可以不要def文件?
- 一些有用的嵌入式站点
- 推荐一个blog和一个工具
- Django 中 {% cycle %}可能存在性能问题
- 查找最小的子串
- 想激活QQ飞车吗??? 嘎嘎
- C#3.0介绍
- 目录文件操作实例[1]_列出本地硬盘上的所有驱动器
- 我是新成员