用于生成DLL文件的def文件的规范写法

*.def文件介绍

模块定义   (.def)   文件为链接器提供有关被链接程序的导出、属性及其他方面的 信息。
使用DEF文件来输出函数的一个最主要目的就是:将编译器生成的函数修饰名去掉,用更加自然的、容易理解的、容易记忆的名字,而不是修饰名来输出函数。这里的名字可以不是函数名,这时须使用DEF文件的NAME格式。但由于习惯,大多情况下,只使用函数名,因为这样最简单省事。是否存在偷懒的嫌疑?我的理解,不管是罗列函数名,还是其它输出名,其本质上是一样的,即都是使用了定义文件的NAME格式。直接罗列函数名,就相当于函数名”=“函数修饰名,只是可以忽略等号后面的部分,而连接器会自动完成函数入口的匹配和设置工作。而一旦决定使用非函
数名的其它名字输出函数,则必须书写完整的格式,即函数输出名”=“要输出的函数修饰名,这里等号后面的部分必须书写正确,否则,连接时就通不过了。举个例子:假设动态库中一个函数描述如下,
int WINAPI TestAdd(int A,int B)
{
    return (A+B);
}

DEF文件的EXPORTS段描述如下,
EXPORTS
  TestAdd
  Add=?TestAdd@@YGHHH@Z

这里TestAddAdd</
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值