C C DLL生成與呼叫例程詳解

2021-08-30 15:52:22 字數 2333 閱讀 6401

為了避免出現問題,請統一使用visual studio 2017

建立乙個dll庫專案,在屬性頁中勾選生成dll(配置型別)

在輸出的選擇中選擇release輸出

主要函式和標頭檔案如下:

//#define dlldemoapi _declspec(dllexport)

#include "stdafx.h"

#include "dlldemo.h"

#include dlldemoapi int my_add(int a, int b)

dlldemoapi int my_subtract(int a, int b)

dlldemoapi int my_multiple(int a, int b)

dlldemoapi void point::print(int x, int y)

dlldemo.h

#include #define dllprovider 1

#ifdef dllprovider

#define dlldemoapi _declspec(dllexport)

#else

#define dlldemoapi _declspec(dllimport)

#endif

dlldemoapi int my_add(int a, int b);

dlldemoapi int my_subtract(int a, int b);

dlldemoapi int my_multiple(int a, int b);

class dlldemoapi point

;#pragma once

上面**中宣告dllprovider則編譯時使用輸出模式,在輸入中只要把dllprovider宣告去掉就可以了。

編譯生成的檔案如下

新建乙個控制台應用,目錄下新建乙個目錄放剛才生成的dll檔案:

dlllib目錄放剛才生成的檔案,工程目錄下也放一次,這樣就沒啥問題了

新建乙個dlldemo.h標頭檔案,如下:

#include #ifdef dllprovider  

#define dlldemoapi _declspec(dllexport)

#else

#define dlldemoapi _declspec(dllimport)

#endif

dlldemoapi int my_add(int a, int b);

dlldemoapi int my_subtract(int a, int b);

dlldemoapi int my_multiple(int a, int b);

class dlldemoapi point

;#pragma once

在這裡沒有定義dllprovider,所以會是使用dllimport的狀態,這個是關鍵之一。

main頁**:

//#include "pch.h"

#include // dlluse.cpp : 定義控制台應用程式的入口點。

//#include "dlldemo.h"

int main()

在工程屬性頁中新增附加庫目錄,剛才的dlllib目錄

在常規->附加包含目錄中新增dll的目錄

輸入->附加依賴項中新增.lib檔案

C DLL C DLL生成與呼叫

1 在vs2015中建立dll專案mydll,新增mydll.cpp mydll.h mydll.cpp內容為 mydll.h內容為 2 生成解決方案,將在x64 release 中生成 mydll.dll 和 mydll.lib 檔案 3 建立win32控制台應用程式dlltest,新增原始檔dl...

C DLL生成與呼叫

生成dll之前需要宣告匯出的介面函式 呼叫dll檔案的方式 include include include 使用函式和某些特殊變數 include cmatrix.h include edscomposition.h pragma comment lib,讀配置檔案.lib include exte...

VS2017 DLL 生成與使用 最小例程

本文以my sum求和函式為例 建立dll專案工程 file new project installed visual c windows desktop dynamic link library 工程名用預設的dll1 ifdef dll exports define dll api declsp...