詳解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-06
C++寬字符與普通字符的轉(zhuǎn)換實(shí)例詳解
這篇文章主要介紹了C++寬字符與普通字符的轉(zhuǎn)換實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06
c++將字符串轉(zhuǎn)數(shù)字的實(shí)例方法
在本篇文章里小編給大家整理的是關(guān)于c++將字符串轉(zhuǎn)數(shù)字的實(shí)例方法,有需要的朋友們可以參考下。2020-02-02
C++設(shè)計(jì)模式編程中簡(jiǎn)單工廠與工廠方法模式的實(shí)例對(duì)比
這篇文章主要介紹了C++設(shè)計(jì)模式編程中簡(jiǎn)單工廠與工廠方法模式的實(shí)例對(duì)比,文中最后對(duì)兩種模式的優(yōu)缺點(diǎn)總結(jié)也比較詳細(xì),需要的朋友可以參考下2016-03-03
C++?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

