动态链接DLL与静态链接LIB, 显示以及隐式调用方式,同时用DUMPBIN 进行重定向输出DLL的文件信息

1.隐式链接方式
例如:
extern "C"
{
__declspec(dllexport)  char* Stract( char*pDest,const char*pSur);
}
第一种方式:#progam comment(lib, "文件名.lib")
第二种方式:
 打开应用程序工程,打开属性->配置属性->连接器->输入->附加依赖项-> 填入要导入的dll文件的 lib


文件
什么是LIB文件??  待会介绍LIB 与DLL的区别


2.显示链接方式
步骤如下:
不需要包含DLL头文件
1.定义函数指针:
typedef char* (*PFUN)(char* ,const char*);
2.使用方法
PFUN pFun;
HINSTANCE hDll = LoadLibrary(TEXT("WinDll(动态链接).dll"));
 pFun = (PFUN)GetProcAddress(hDll,"Stract");
pFun(str1,str2);//调用函数,需要明确知道函数返回类型,函数参数
 FreeLibrary(hDll);//释放链接DLL


3.重定向输出DLL文件信息
例如:
dumpbin /exports  e:/文件名.dll  /out:e:MyDll.txt  
将DLL导出的函数信息导出到指定的MyDll.txt 里面, 不用输出到DOS中。
4.  dumpbin /exports WinDll.dll  //在DOS中导出函数信息
需要注意的是 extern "C"  ,不加的话,导出的函数名为C++形式
加了extern "C", 导出函数以C语言方式。


4.
DLL是程序在运行阶段才需要的文件。
LIB是程序编译时需要链接的文件。
LIB 文件里面 包含导出函数的
函数索引,没有实现,也就是只有声明没有定义,
DLL包含了函数的定义,


//太晚了,明天在补充
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值