之前写程序一直都是编写代码,编译,生成exe文件,没有用过dll。
这样写的程序都是一个个独立的,不放便调用。
今天用vs2010编写了dll程序,记录下过程。
【本过程参照过:http://blog.csdn.net/ixsea/article/details/6676802,http://blog.csdn.net/einsdan/article/details/7446892】
dll中有一个函数,叫做mySum(n),用于求1到n的和。
步骤如下:
1 简历一个win32工程(mfc的情况类似)
2. 设置工程类型为dll
选择next,并设置如下界面,点击完成。
3 得到makedll工程,分别修改makedll.h和makedll.cpp文件。
红色框中代码为:extern "C" MAKEDLL_API int mySum(int n);
cpp文件
红色框中代码为:
MAKEDLL_API int mySum(int n)
{
int i,sum;
for(sum=i=0;i<=n;i++)
sum+=i;
return sum;
}
4 build 工程,生成makedll.dll文件
5 写程序useDLL.cpp调用makedll.dll文件中的函数 mySum(int).[makedll.dll和useDLL.cpp放在一起]
useDLL.cpp代码为:
#include<iostream>
#include<Windows.h>
using namespace std;
typedef int (*FUNC)(int);
int main()
{
char* dllName="makedll.dll";
char* funName="mySum";
HMODULE hDLL=LoadLibrary(dllName);
if(hDLL!=NULL)
{
cout<<"dll loaded"<<endl;
FUNC fp3=FUNC(GetProcAddress(hDLL,funName));
if(fp3!=NULL)
{
cout<<"function loaded"<<endl;
cout<<fp3(10)<<endl;
}
}
system("pause");
}
6 编译运行