詳解VS2010實(shí)現(xiàn)創(chuàng)建并生成動態(tài)鏈接庫dll的方法
1、目的
在某些應(yīng)用程序場景下,需要將一些類或者方法編譯成動態(tài)鏈接庫dll,以便別的.exe或者.dll文件可以通過第三方庫的方式進(jìn)行調(diào)用,下面就簡單介紹一下如何通過VS2010來創(chuàng)建動態(tài)鏈接庫。
2、新建動態(tài)鏈接庫
1) 打開VS2010,選擇Visual C++,新建win32控制臺應(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(" 自動鏈接到 MyTestDll.lib.")
#else
#pragma comment (lib, "MyTestDlld.lib")
#pragma message(" 自動鏈接到 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文件生成位置
在 鏈接器-高級里面將lib的生成位置進(jìn)行修改;同理,可將debug生成文件加上后綴-d。


3) 添加導(dǎo)出的預(yù)處理宏定義。

5、編譯生成
編譯后生產(chǎn)文件如下:



6、測試項(xiàng)目
用VS2010新建控制臺程序exe,然后引入上面的動態(tài)鏈接庫,進(jìn)行使用測試。程序運(yùn)行如下:


項(xiàng)目屬性修改如圖:


以上就是詳解VS2010實(shí)現(xiàn)創(chuàng)建并生成動態(tài)鏈接庫dll的方法的詳細(xì)內(nèi)容,更多關(guān)于VS創(chuàng)建生成動態(tài)鏈接庫dll的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C語言中access/_access函數(shù)的使用實(shí)例詳解
本文通過實(shí)例代碼給大家介紹了C語言中access/_access函數(shù)的使用,代碼簡單易懂,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
c++如何控制對象的創(chuàng)建方式(禁止創(chuàng)建棧對象or堆對象)和創(chuàng)建的數(shù)量
這篇文章主要介紹了c++如何控制對象的創(chuàng)建方式和創(chuàng)建的數(shù)量,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08

