一.关于不带有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