詳解VS2010實(shí)現(xiàn)創(chuàng)建并生成動(dòng)態(tài)鏈接庫dll的方法
1、目的
在某些應(yīng)用程序場(chǎng)景下,需要將一些類或者方法編譯成動(dòng)態(tài)鏈接庫dll,以便別的.exe或者.dll文件可以通過第三方庫的方式進(jìn)行調(diào)用,下面就簡(jiǎn)單介紹一下如何通過VS2010來創(chuàng)建動(dòng)態(tài)鏈接庫。
2、新建動(dòng)態(tài)鏈接庫
1) 打開VS2010,選擇Visual C++,新建win32控制臺(tái)應(yīng)用程序
2) 選擇應(yīng)用程序類型為DLL,點(diǎn)擊完成生成項(xiàng)目數(shù)據(jù)。
3、添加導(dǎo)出類,并修改項(xiàng)目配置
1) 添加MyFunction類,并設(shè)定為導(dǎo)出類
MyFunction.h
#pragma once #ifndef MYTESTDLL_EXPORTS #ifndef _DEBUG #pragma comment (lib, "MyTestDll.lib") #pragma message(" 自動(dòng)鏈接到 MyTestDll.lib.") #else #pragma comment (lib, "MyTestDlld.lib") #pragma message(" 自動(dòng)鏈接到 MyTestDlld.lib.") #endif #endif #ifdef MYTESTDLL_EXPORTS #define MYTESTAPI __declspec(dllexport) #else #define MYTESTAPI __declspec(dllimport) #endif class MYTESTAPI CMyFunction { public: CMyFunction(); ~CMyFunction(); // 加法 int add(int nA, int nB); // 減法 int minus(int nA, int nB); };
MyFunction.cpp
#include "StdAfx.h" #include "MyFunction.h" CMyFunction::CMyFunction() { } CMyFunction::~CMyFunction() { } int CMyFunction::add(int nA, int nB) { return nA + nB; } int CMyFunction::minus(int nA, int nB) { return nA - nB; }
4、修改項(xiàng)目配置
1) 修改dll文件生成位置
在輸出目錄將dll生成位置進(jìn)行修改,以便尋找;同時(shí)為了方便區(qū)分Debug模式和Release模式,可將debug生成文件加上后綴-d。
2)修改lib文件生成位置
在 鏈接器-高級(jí)里面將lib的生成位置進(jìn)行修改;同理,可將debug生成文件加上后綴-d。
3) 添加導(dǎo)出的預(yù)處理宏定義。
5、編譯生成
編譯后生產(chǎn)文件如下:
6、測(cè)試項(xiàng)目
用VS2010新建控制臺(tái)程序exe,然后引入上面的動(dòng)態(tài)鏈接庫,進(jìn)行使用測(cè)試。程序運(yùn)行如下:
項(xiàng)目屬性修改如圖:
以上就是詳解VS2010實(shí)現(xiàn)創(chuàng)建并生成動(dòng)態(tài)鏈接庫dll的方法的詳細(xì)內(nèi)容,更多關(guān)于VS創(chuàng)建生成動(dòng)態(tài)鏈接庫dll的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
推薦幾款C/C++的編譯器、編譯環(huán)境(非常全面的比較)
這篇文章主要介紹了C/C++編譯器的一些易混淆概念,這里腳本之家小編特為大家分享一下,需要的朋友可以參考下2021-06-06C++寬字符與普通字符的轉(zhuǎn)換實(shí)例詳解
這篇文章主要介紹了C++寬字符與普通字符的轉(zhuǎn)換實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06c++將字符串轉(zhuǎn)數(shù)字的實(shí)例方法
在本篇文章里小編給大家整理的是關(guān)于c++將字符串轉(zhuǎn)數(shù)字的實(shí)例方法,有需要的朋友們可以參考下。2020-02-02C++設(shè)計(jì)模式編程中簡(jiǎn)單工廠與工廠方法模式的實(shí)例對(duì)比
這篇文章主要介紹了C++設(shè)計(jì)模式編程中簡(jiǎn)單工廠與工廠方法模式的實(shí)例對(duì)比,文中最后對(duì)兩種模式的優(yōu)缺點(diǎn)總結(jié)也比較詳細(xì),需要的朋友可以參考下2016-03-03C++?Qt開發(fā)之使用QUdpSocket實(shí)現(xiàn)UDP網(wǎng)絡(luò)通信
Qt 是一個(gè)跨平臺(tái)C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺(tái)窗體應(yīng)用程序,本文主要介紹如何運(yùn)用QUdpSocket組件實(shí)現(xiàn)基于UDP的網(wǎng)絡(luò)通信功能,需要的可以參考下2024-03-03