在Visual Studio中用C++语言创建DLL动态链接库图文教程(4)
#include <windows.h>
#include <iostream>
using namespace std;
typedef int (*AddFunc)(int a, int b);
int main(int argc, char *argv[])
{
HMODULE hDll = LoadLibrary("DLLDemo1.dll");
if (hDll != NULL)
{
AddFunc add = (AddFunc)GetProcAddress(hDll, "?Add@@YAHHH@Z");
if (add != NULL)
{
cout<<add(2, 3)<<endl;
}
FreeLibrary(hDll);
}
}
请注意GetProcAddress函数的第二个参数,该参数名就是导出的函数名,在编码时,写这样一个名字是不是很奇怪啊。当我们使用extern “C”方式导出时,截图如下:
注意导出方式为C,而且函数名现在就是普通的Add了。我们再使用GetProcAddress时,就可以直接指定Add了,而不用再加那一长串奇怪的名字了。
DLL导出变量
DLL定义的全局变量可以被调用进程访问;DLL也可以访问调用进程的全局数据。(工程下载)
DLL导出类
DLL中定义的类,也可以被导出。详细工程代码,请参见(工程下载)
总结
对DLL的讲解就到此结束,由于MFC在现在的环境下使用较少,此处不予讲解,如果以后做项目遇到了MFC的DLL相关知识,我再做总结。最后,希望大家给我的博客提出一些中肯的建议。
- 上一篇:C++设计模式之简单工厂模式实例
- 下一篇:C++构造函数初始化顺序详解