在VC++中创建DLL文件并加载
生活随笔
收集整理的這篇文章主要介紹了
在VC++中创建DLL文件并加载
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一.Win32動態(tài)鏈接庫
1.制作的步驟:
(1)新建WIN32 Dynamic-link Library工程,工程名為MyDll,選擇A DLL that export some symbol (simple DLL project不會生.h文件)類型。
(2)MyDll.h的內(nèi)容如下:
extern "C" _declspec(dllexport) int sum(int a,int b);//本文所有的例子只有一個sum函數(shù)。
(3)MyDll.cpp的內(nèi)容如下:
#include "stdafx.h"
#include "windows.h"
#include "MyDll.h"
BOOL APIENTRY DllMain(
? ? HANDLE hModule,
? ? DWORD ul_reason_for_call,
? ? LPVOID lpReserved
)
{
? return TRUE;
}
extern "C" _declspec(dllexport)int sum(int a, int b)
{
? return a+b;
}
(4)編譯之后產(chǎn)生了MyDll.lib與MyDll.dll兩個文件。
2.使用方法:
(1).隱式調(diào)用法: 將MyDll.lib和MyDll.h拷貝到需要應(yīng)用該DLL的工程的目錄下,將MyDll.dll拷貝到產(chǎn)生的應(yīng)用程序的目錄下,并在需要應(yīng)用該DLL中的函數(shù)的CPP文件中添加如下幾行:
#include "MyDll.h"
#pragma comment(lib,"MyDll");
(2).顯示調(diào)用法:將MyDll.lib和MyDll.h拷貝到需要應(yīng)用該DLL的工程的目錄下,將MyDll.dll拷貝到產(chǎn)生的應(yīng)用程序的目錄下,并在需要應(yīng)用該DLL中的函數(shù)的CPP文件中包含頭文件,如:
#include "MyDll.h"
同時還需要在Project->Setting->Link->Object/library modules的框中增加MyDll.lib這個庫。
二.MFC動態(tài)鏈接庫
1.制作的步驟:
(1)新建MFC AppWizard(dll)工程,工程名為MFCDll,選擇Regular DLL using shared MFC DLL類型。
(2)在生成的MFCDll.cpp文件后面增加下面幾行:
int sum(int a, int b)
{
? return a+b;
}
(3)在生成的MFCDll.def文件后面增加如下:
sum @1 ;表示第一個函數(shù)是sum
(4)編譯后會產(chǎn)生兩個文件MFCDll.lib,MFCDll.dll
2.使用方法
(1)隱式調(diào)用法: 將MFCDll.lib拷貝到需要應(yīng)用該DLL的工程的目錄下,將MyDll.dll拷貝到產(chǎn)生的應(yīng)用程序的目錄下,并在需要應(yīng)用該DLL中的函數(shù)的CPP文件中添加如下幾行:
//注意這里沒有在MFCDll.h中聲明函數(shù),所以不能直接包含MFCDll.h來聲明函數(shù)。
#pragma comment(lib,"MFCDll");
int sum(int a, int b);
//當(dāng)然如果你的DLL中有很多函數(shù),那可以另外寫個MFCDll.h,包含所有的函數(shù)聲明,然后直接將頭文件包含進(jìn)去
(2)顯示調(diào)用法:與Win32的調(diào)用方法一樣,不需要#pragma comment(lib,"MFCDll");,但是需要在Project->Setting->Link->Object/library modules的框中增加MFCDll.lib這個庫
不足之處請大家補充!謝謝!
1.制作的步驟:
(1)新建WIN32 Dynamic-link Library工程,工程名為MyDll,選擇A DLL that export some symbol (simple DLL project不會生.h文件)類型。
(2)MyDll.h的內(nèi)容如下:
extern "C" _declspec(dllexport) int sum(int a,int b);//本文所有的例子只有一個sum函數(shù)。
(3)MyDll.cpp的內(nèi)容如下:
#include "stdafx.h"
#include "windows.h"
#include "MyDll.h"
BOOL APIENTRY DllMain(
? ? HANDLE hModule,
? ? DWORD ul_reason_for_call,
? ? LPVOID lpReserved
)
{
? return TRUE;
}
extern "C" _declspec(dllexport)int sum(int a, int b)
{
? return a+b;
}
(4)編譯之后產(chǎn)生了MyDll.lib與MyDll.dll兩個文件。
2.使用方法:
(1).隱式調(diào)用法: 將MyDll.lib和MyDll.h拷貝到需要應(yīng)用該DLL的工程的目錄下,將MyDll.dll拷貝到產(chǎn)生的應(yīng)用程序的目錄下,并在需要應(yīng)用該DLL中的函數(shù)的CPP文件中添加如下幾行:
#include "MyDll.h"
#pragma comment(lib,"MyDll");
(2).顯示調(diào)用法:將MyDll.lib和MyDll.h拷貝到需要應(yīng)用該DLL的工程的目錄下,將MyDll.dll拷貝到產(chǎn)生的應(yīng)用程序的目錄下,并在需要應(yīng)用該DLL中的函數(shù)的CPP文件中包含頭文件,如:
#include "MyDll.h"
同時還需要在Project->Setting->Link->Object/library modules的框中增加MyDll.lib這個庫。
二.MFC動態(tài)鏈接庫
1.制作的步驟:
(1)新建MFC AppWizard(dll)工程,工程名為MFCDll,選擇Regular DLL using shared MFC DLL類型。
(2)在生成的MFCDll.cpp文件后面增加下面幾行:
int sum(int a, int b)
{
? return a+b;
}
(3)在生成的MFCDll.def文件后面增加如下:
sum @1 ;表示第一個函數(shù)是sum
(4)編譯后會產(chǎn)生兩個文件MFCDll.lib,MFCDll.dll
2.使用方法
(1)隱式調(diào)用法: 將MFCDll.lib拷貝到需要應(yīng)用該DLL的工程的目錄下,將MyDll.dll拷貝到產(chǎn)生的應(yīng)用程序的目錄下,并在需要應(yīng)用該DLL中的函數(shù)的CPP文件中添加如下幾行:
//注意這里沒有在MFCDll.h中聲明函數(shù),所以不能直接包含MFCDll.h來聲明函數(shù)。
#pragma comment(lib,"MFCDll");
int sum(int a, int b);
//當(dāng)然如果你的DLL中有很多函數(shù),那可以另外寫個MFCDll.h,包含所有的函數(shù)聲明,然后直接將頭文件包含進(jìn)去
(2)顯示調(diào)用法:與Win32的調(diào)用方法一樣,不需要#pragma comment(lib,"MFCDll");,但是需要在Project->Setting->Link->Object/library modules的框中增加MFCDll.lib這個庫
不足之處請大家補充!謝謝!
轉(zhuǎn)載于:https://blog.51cto.com/haofu/55992
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的在VC++中创建DLL文件并加载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将地址转换为链接的正则表达式(regex
- 下一篇: 在Red Hat Linux中自动运行程