c++中关于dll的调用方法(两种)

现在介绍两种在c++中调用dll的方法:

一.关于不带有lib文件的dll的调用方法:
 在调用程序中加入以下代码:

 //定义一个函数指针
 typedef void (  * TULIPFUNC )(void); 

 //定义一个函数指针变量
 TULIPFUNC tulipFunc; 

 //加载我们的dll
 HINSTANCE hinst=::LoadLibrary("COM_1.dll"); 
 
 //找到dll的tulip函数
 tulipFunc=(TULIPFUNC)GetProcAddress(hinst,"tulip"); 

 //调用dll里的函数
 tulipFunc();  
这种方法比较适合系统函数的调用,因为系统只提供dll,而不提供.lib文件


二. 带lib文件的dll的创建及调用方法:
1. 创建一个dll,添加一个头文件,如header.h
头文件中添加一个需要导出的方法:extern "C" __declspec(dllexport)  void test(void);  
2. 在dll主程序中包含头文件(如header.h),并且添加对头文件中申明的需要导出方法的实现:
#include "header.h"
extern "C" __declspec(dllexport)  void test(void)
{
 ::MessageBox(NULL,"ok","I''am fine",MB_OK);
}
3.这样创建的dll将包含lib文件,创建一个测试程序,在主程序中加入以下代码:

#include "header.h" //包含头文件
//注意路径,加载 Test.lib 的另一种方法是 Project | setting | link 设置里
#pragma comment(lib,"Test.lib")
int main(void)
{
 test();//只要这样我们就可以调用dll里的函数了
 return 0;
}

lib和dll的区别:Lib文件是dll输出符号文件。如果一个dll没有任何东西输出那么不会有对应的lib文件,但只要一个dll输出一个变量或函数就会相应的lib文件。总的说来,dll与lib是相互配套的。


转自:http://archlord.blog.hexun.com/21303688_d.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值