【原创】C++创建和使用动态链接库之Win32DLL

动态连接库是在程序运行时加载到内存中的。

  • Visual C++ 支持的动态链接库有三种:Win32 DLL,MFC常规DLL,MFC扩展DLL
  • 创建win32 DLL

Win32 DLL中不可以使用MFC类库,导出的是标准的C函数。

1.新建->工程 选择Win32 Dynamic-Link Library。工程名为pow,点击确定进入下一步

选择第三项“一个可以导出某些符号的DLL工程”,其中包含了DLLMain函数,导出符号和实例代码。如图所示

01

工程会自动生成对应的文件和代码

在Pow.h中添加pow函数的声明

POW_API int pow(const int& x,const int& y); //POW_API是自动生成的一个宏,

//它的作用是表明该函数是导入还是导出的

 

在Pow.cpp中添加pow函数的实现

POW_API int pow(const int& x,const int& y)
{
    int z=1;
    for(int i=0;i<y;i++)
        z*=x;
    return z;
}

编译和链接程序,完成后会在debug目录里生成Pow.dll和Pow.lib两个文件,其中Pow.lib是动态链接库进行静态链接时使用

  • 使用Win32 DLL(隐式链接)

创建一个Win32 Console Application工程,工程名为test。

把刚才生成的Pow.dll和Pow.lib文件放到该工程目录里,把Pow.dll拷贝一份放到debug目录里防止直接运行exe时找不到dll。

添加一个test.cpp文件

输入如下代码

#include <iostream>
#include "Pow.h"
#pragma comment(lib,"Pow")
using namespace std;
 
int main()
{
    cout <<pow(3,3);
    return 0;
}
 

 

 

 

 
posted @ 2009-11-25 04:51  leukotrichia  阅读(2153)  评论(0编辑  收藏  举报