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调试运行结果如下:

 

posted @   Faint@LastStep  阅读(359)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 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 构建精确任务处理应用
点击右上角即可分享
微信分享提示