果玩软件园:为用户提供海量热门软件、游戏等手机资源下载服务!

装机必备热门标签玩游戏装软件BT游戏H5游戏看教程专题游戏盒子手机版

果玩软件园

所在位置:首页 > 资讯教程 > 系统教程 >  > 详情

VC++ 6.0创建与调用动态链接库的操作教程

文章来源:网络作者:淡昧发布时间:2026-05-27 23:00:14

360集合包
360集合包
360集合包,一键装机、快捷方便。
Ready

      这期教程是为各位讲解在VC++ 6.0如何创建与调用动态链接库,感兴趣的就赶紧去下文学习下吧,相信你们会喜欢。

      VC++ 6.0创建与调用动态链接库的操作教程

      静态链接库与动态链接库区别:

      静态链接库:lib中的指令被直接包含在最终生成的EXE文件中。

      动态链接库:dll不必被包含在最终的EXE中,EXE文件执行时可以动态地引用和卸载DLL文件。

      同时,静态链接库中不能再包含其他的动态链接库或静态库,而动态链接库中可以包含其他的动态或静态库。

      VC++支持的DLL:

      DLL的编制与具体的编程语言及编译器无关,动态链接库随处可见,VC++支持三种DLL:非MFC动态库、MFC规则DLL和MFC扩展DLL。DLL导出函数(或变量、类)可供应用程序调用;DLL内部函数只能在DLL程序内使用,应用程序无法调用它们。

      导出函数的声明方式:

      一种在函数声明类型和函数名之间加上“_declspec(dllexport)”。

      另外一种采用模块定义(.def)文件声明,需要在库工程中添加模块文件,格式如下:

      LIBRARY 库工程名称

      EXPORTS 导出函数名

      DLL的调用方式:

      一种静态调用,由编译系统完成对DLL的加载和应用程序结束时DLL的卸载。

      另外一种动态调用,由编程者用API函数加载和卸载DLL(DLL加载—DLL函数地址获取—DLL释放)方式。

      所有库工程编译时必须Release方式:

      Build—set active configuration—选择库工程的release方式

      示例:

      一、 函数----创建动态链接库(MFC规则DLL)

      1. New--projects--MFC AppWizard(dll)--Regular DLL using shared MFC DLL //取名为MFC_dll

      2. def文件中添加:函数名(Add_new)

      3. h文件中添加:外部函数声明//求和函数,函数名为Add_new

      extern "C" __declspec(dllexport) int __stdcall Add_new(int a,int b);

      4. cpp文件中添加: 外部函数实现

      extern "C" __declspec(dllexport) int __stdcall Add_new(int a,int b)

      {

      return a+b;

      }

      5. build--set active configuration--win32 release--ok

      6. 生成

      7. 根目录下release文件夹中dll,lib与根目录下h文件即为所需

      二、 函数----调用动态链接库(把MFC_dll.dll和MFC_dll.lib拷到工程所在目录)

      //静态调用(.h可以写到.cpp文件中)

      1. new--projects--win32 console application--an empty project

      2. 添加h文件:(test.h)

      #pragma comment(lib,"MFC_dll.lib") //告诉编译器DLL相对应的lib文件所在路径和文件名

      extern "C" _declspec(dllimport) int _stdcall Add_new(int a,int b);//声明导入函数

      3. 添加cpp文件:(main.cpp)

      #include "test.h"

      int main()

      {

      cout<

      return 0;

      }

      //动态调用

      #include

      #include

      typedef int (* lpAddFun)(int ,int);//定义一个与Add_new函数接受参数类型和返回值均相同的函数指针类型

      int main()

      {

      HINSTANCE hDll;//句柄

      lpAddFun addFun;//函数指针

      hDll=LoadLibrary("dllTest.dll");//动态加载DLL模块句柄

      if(hDll)

      {

      addFun=(lpAddFun) GetProcAddress(hDll,"Add_new");//得到所加载DLL模块中函数的地址

      if(addFun)

      {

      int result=addFun(2,3);

      printf("%d",result); } FreeLibrary(hDll);//释放已经加载的DLL模块

      }

      return 0;

      }

      三、 变量----创建动态链接库(非MFC DLL)

      1. new---projects---win32 dynamic-link library----an empty project(Sample)

      2. 添加sample.h

      #ifndef SAMPLE_H

      #define SAMPLE_H

      extern int dllGlobalVar;

      #endif

      3. 添加 sample.cpp

      #include "sample.h"

      #include

      int dllGlobalVar;

      bool APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)

      //windows在加载DLL时,需要一个入口函数,就如同控制台或DOS程序需要main函数、win32程序需要winmain函数一样。所以引入一个不做任何操作的缺省DllMain的函数版本。是DLL的内部函数。

      以上就是小编给大家带来的全部内容,大家都学会了吗?

End
复制本文链接资讯文章为果玩软件园所有,未经允许不得转载。
热门游戏MORE+
相关资讯MORE+
最新录入
热门资讯
新游新品榜
手机游戏
休闲益智
赛车竞速
棋牌桌游
角色扮演
动作射击
体育竞技
经营养成
策略塔防
冒险解谜
音乐游戏
手游辅助
H5游戏
BT游戏
手机软件
社交聊天
系统工具
时尚购物
旅游出行
影音播放
生活实用
办公学习
资讯阅读
拍摄美化
游戏辅助
健康医疗
地图导航
小说漫画
安全防护
育儿亲子
手游下载
梦想三国之勇往直前0....
炼仙传说0.1折
不可思议的刀剑与魔法...
逍遥浪人
奇幻梦旅人
玄影0.1折
点击冒险之旅(0.1折特...
天神赵子龙0.1折
九州异兽记0.1折
龙魂魔法0.1折
装机软件
爱奇艺电脑版
Steam下载管家 2026最...
360游戏大厅
GoLink加速器
3DM驱动大师
夸克
豆包电脑版
360C盘扩容大师
360录屏
360极速浏览器
精选专题
手机游戏专题
手机软件专题
电脑软件专题
电脑游戏专题
游戏排行榜
手游排行榜
软件排行榜
BT排行榜
电脑软件排行榜
电脑游戏排行榜