為了避免出現問題,請統一使用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...