天天看點

VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻

建立

1.建立DLL

VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻

2.在頭檔案建立myDll.h,在源檔案建立myDll.cpp,在資源檔案建立myDll.def(三個名字要一樣)

VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻

3.在myDll.h與myDll.cpp分别寫入如下代碼:

//myDll.h

#pragma once
#define EXPORT_DLL _declspec(dllexport) 
extern "C" EXPORT_DLL void  Create(char *s);
extern "C" EXPORT_DLL void  Destroy(char *s);


//myDll.cpp

#include "myDll.h"
void  Create(char *a)
{
	*a = 'C';
}

void  Destroy(char *a)
{
	*a = 'D';
}


//myDll.def

; myDll.def : Declares the module parameters for the DLL.
LIBRARY	"myDll"

EXPORTS
    ; Explicit exports can go here
    Create
    Destroy
           

注意,要右鍵解決方案,配置myDll在Win32下,右鍵myDll ->屬性可檢視

VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻
VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻

4.生成myDll.lib 與 myDll.dll

右鍵myDll項目,在配置屬性的正常中,修改配置類型為動态庫dll

VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻

修改完後,右鍵myDLL,點選生成

VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻

可以看到myDLL.lib與myDll.dll已生成

VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻

至此已完成一個自己設計的dll動态庫。

調用

建立一個C++空項目Dlltest,同上也将該項目設定為Win32環境下運作

在Dlltest.cpp寫上如下代碼:

//Dlltest.cpp

#include<iostream>
#include<myDll.h>
using namespace std;
int main()
{

	char c = 'A';
	char *p = &c;
	cout << *p << endl;
	Create(p);
	cout << *p << endl;
	Destroy(p);
	cout << *p << endl;
	system("pause");
	return 0;
}
           

在運作前,要進行頭檔案與動态庫的配置!

1.為了規範,Dlltest項目目錄下,建立include目錄,放之前建立的myDll.h;建立lib目錄,放入myDll.lib。

最後将myDll.dll放入該目錄

VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻

2.右鍵Dlltest項目,屬性中配置,在附加包含目錄、附加庫目錄、附加依賴項分别選擇剛剛建立的include檔案夾、剛剛建立的lib檔案夾、填入“myDll.lib”三個操作

VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻
VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻
VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻

3.運作Dlltest,若一切配置正确,運作結果如下

VS2017建立動态庫dll并調用(建立并調用自己設計的類庫)建立調用參考文獻

至此,調用自己的dll已成功

參考文獻

.h(頭檔案) .lib(庫檔案) .dll(動态連結庫檔案) 之間的關系和作用的區分

3分鐘完成在VS建立一個DLL并調用

vs2013下動手寫*.dll檔案并調用它

用 VS 建立 DLL 的方法和坑 (C++)

VS建立動态連結庫Dll步驟

如何編譯生成dll檔案以及如何調用dll檔案

MFC(C++)中 __declspec(dllexport) 和 __declspec(dllimport)的作用

淺談__declspec(dllexport)和__declspec(dllimport)

用C++建立屬于自己的類庫?

如何在編譯器(vs2010)裡設定調用别人寫好的lib和dll

繼續閱讀