網站首頁 編程語言 正文
一、創建動態文件
1.添加頭文件dll.h,并輸入以下代碼:
#ifdef DLL_EXPORTS //如果在工程里已經添加預定義宏DLL_EXPORTS
#define DLLEXPORT __declspec(dllexport) //那DLLEXPORT就指代__declspec(dllexport) 用于dll的導出
#else //當工程中不包含DLL_EXPORTS預定義時
#define DLLEXPORT __declspec(dllimport) //DLLEXPORT 就指代__declspec(dllimport)
#endif
DLLEXPORT int add(int a, int b);//導出函數用
DLLEXPORT void foo();//導出函數用
class DLLEXPORT __declspec(dllexport) a {};//導出類用
2.在項目的屬性中的預處理其中定義DLL_EXPORTS,其他項目則不要定義。
3.在dll.cpp文件中實現方法:
#include "dll.h"
int add(int x,int y)
{
return x+y;
}
4.編譯生成,則工程的debug目錄下就生成了.dll和.lib文件
二、創建調用動態文件
1.新工程中,創建添加源文件calldll.cpp,并輸入以下代碼:
#include "dll.h"
#include <iostream>
int main()
{
int z;
int x=1, y=2;
z=add(x,y);
std::cout<<z<<std::endl;
}
2.工程屬性進行以下設置:
(1)C/C++:“附加包含目錄”,添加dll.h頭文件目錄;
(2)鏈接器--常規: “附加庫目錄”,添加上面生成的dll.lib文件的目錄;
(3)鏈接器--輸入:“附加依賴項”,添加上面生成的dll.lib文件。
(4)代碼中開始位置手動引用靜態庫: #pragma comment(lib,"..\Testlib\Test.lib")
注:#pragma comment(lib,"..\upgradeLib\RKUpgrade.lib")
3.按照如上操作,即可成功生成并運行。即完成dll動態庫的調用。
注:
如果編譯通過后用行,提示丟失dll.dll文件的錯誤信息。
解決:將dll.dll放在和exe同一目錄下或放在c:\windows\system32目錄下(Win64位操作系統且dll.dll不是64位而是32位的話放在c:\windows\syswow64目錄下)
原文鏈接:https://www.cnblogs.com/wml-it/p/15951995.html
相關推薦
- 2023-03-22 tkinter動態顯示時間的兩種實現方法_python
- 2022-11-17 VMware?vSphere?ESXi系統設置靜態IP的方法_VMware
- 2022-12-23 C++?Boost?Parameter超詳細講解_C 語言
- 2022-03-22 C語言中map函數的基礎用法詳解(C語言map函數用法)
- 2023-10-15 [element-ui] el-input 不能正常輸入,輸入了也不能刪除的問題
- 2022-10-03 Objective-C?const常量的優雅使用方法_IOS
- 2022-05-13 this.$route.params獲取不到
- 2022-07-12 windows11下的dockerDesktop4.8.2資源目錄掛載
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支