VC++ 动态DLL模板
1、VS2003新建DLL项目dllTest
2、项目dllTest中添加脚本lib.h,代码如下:
1 //lib.h 2 #ifndef LIB_H 3 #define LIB_H 4 extern "C" int __declspec(dllexport) add(int x,int y); 5 extern "C" int __declspec(dllexport) mius(int x,int y); 6 #endif
3、项目dllTest中添加脚本lib.cpp,代码如下:
1 #include "lib.h" 2 int add(int x,int y) 3 { 4 return x + y; 5 } 6 int mius(int x,int y) 7 { 8 return x - y; 9 }
4、build生成dllTest.dll文件
5、添加检测项目dllCall
6、添加主程序脚本dllCall.cpp,代码如下:
特别说明:LoadLibrary、GetProcAddress及FreeLibrary是系统API,故需要引用windows.h
1 #include "stdafx.h" 2 #include "windows.h" 3 4 typedef int ( * lpAddFun)(int,int); 5 6 int main(int argc, char* argv[]) 7 { 8 HINSTANCE hDll; //DLL句柄 9 lpAddFun addFun; //函数指针 10 hDll = LoadLibrary("..\\Debug\\dllTest.dll"); 11 if (hDll != NULL) 12 { 13 addFun = (lpAddFun)GetProcAddress(hDll,"add"); 14 if(addFun!=NULL) 15 { 16 int result = addFun(2,3); 17 printf("2 + 3 = %d\n",result); 18 } 19 addFun = (lpAddFun)GetProcAddress(hDll,"mius"); 20 { 21 int result = addFun(2,3); 22 printf("2 - 3 = %d\n",result); 23 } 24 FreeLibrary(hDll); 25 } 26 return 0; 27 }
7、Ctrl+F5调试运行结果如下:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用