龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

在Visual Studio中用C++语言创建DLL动态链接库图文教程(4)

时间:2014-10-01 02:28来源:网络整理 作者:网络 点击:
分享到:
复制代码 代码如下: #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")

复制代码 代码如下:

#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相关知识,我再做总结。最后,希望大家给我的博客提出一些中肯的建议。

精彩图集

赞助商链接