博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dll隐藏导出函数名
阅读量:4123 次
发布时间:2019-05-25

本文共 824 字,大约阅读时间需要 2 分钟。

    DLL中导出函数的声明有两种方式:一种为在函数声明中加上__declspec(dllexport),这里不再举例说明;另外一种方式是采用模块定义(.def) 文件声明,.def文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。

            首先创建 一个DLL程序,.cpp中

int __stdcall Add(int a, int b){       return (a+ b);}int __stdcall Sub(int a, int b){        return (a- b);}

  然后创建一个.def的文件,在里面加上

;DllTestDef.lib : 导出DLL函数;作者:----LIBRARY DllTestDefEXPORTS Add @ 1 NONAMESub @ 2 NONAME

   

说明:

.def 文件必须至少包含下列模块定义语句:

  • 文件中的第一个语句必须是 LIBRARY 语句。此语句将 .def 文件标识为属于 DLL。LIBRARY 语句的后面是 DLL 的名称。链接器将此名称放到 DLL 的导入库中。

  • EXPORTS 语句列出名称,可能的话还会列出 DLL 导出函数的序号值。通过在函数名的后面加上 @ 符和一个数字,给函数分配序号值。当指定序号值时,序号值的范围必须是从 1 到 N,其中 N 是 DLL 导出函数的个数。如果希望按序号导出函数,请参见以及本主题。

  • .def文件是普通的文本文件。随意新建一个资源,扩展名定义成.def即可。

.def文件的规则为:
  (1)LIBRARY语句说明.def文件相应的DLL;
  (2)EXPORTS语句后列出要导出函数的名称。可以在.def文件中的导出函数名后加@n,表示要导出函数的序号为n(在进行函数调用时,这个序号将发挥其作用);
  (3).def 文件中的注释由每个注释行开始处的分号 (;) 指定,且注释不能与语句共享一行。

参考目录:

转载地址:http://xnopi.baihongyu.com/

你可能感兴趣的文章
算法导论第三版参考答案
查看>>
ROS相关资料及常用代码总结
查看>>
turtlebot2自主导航move_base_grid调试记录
查看>>
ROS kinetic版本常用资料及操作汇总
查看>>
ROS串口通信
查看>>
Linux基础总结
查看>>
ROS基础总结
查看>>
栈上分配内存和堆上分配内存的区别
查看>>
linux下shell启动多个终端运行程序
查看>>
Linux下暂停的功能实现
查看>>
Linux系统编程手册笔记(一)
查看>>
Linux系统编程手册学习笔记(二)
查看>>
vs2019配置opencv4.1.0过程记录
查看>>
欧拉通路与欧拉回路,辨析
查看>>
3D相机测距原理总结
查看>>
SLAM总结(一)
查看>>
open计算机视觉编程总结
查看>>
File `spotcolor.sty' not found. \NewSpotColorSpace解决方案
查看>>
摄像头常见参数
查看>>
字节对齐问题总结
查看>>