VC中建立DLL,匯出全域性變數,函式和類

2021-05-27 08:38:40 字數 1358 閱讀 4044

1.在vc中新建乙個win32空專案mathlib;

2.新增預編譯標頭檔案stdafx.h,定義匯入匯出控制符號:

1:
2: #pragma once
3: #define mathlib_export

3.新增包含要匯出的全域性變數,函式和類的標頭檔案mathlib.h:

1:
2: #pragma once
3:
4: #ifdef mathlib_export
5: #define mathlibapi __declspec(dllexport)
6: #else
7: #define mathlibapi __declspec(dllimport)
8: #endif
9:
10: //macro
11: #define pi 3.14149
12:
13: //global variable
14: extern mathlibapi int globalvariable;
15:
16: //function
17: mathlibapi int add(int a,int b);
18:
19: //class
20: class mathlibapi math
21: ;

4.新增所匯出元素的實現檔案mathlib.cpp

1:
2: #include "stdafx.h"
3: #include "mathlib.h"
4:
5: int globalvariable = 100;
6:
7: int add(int a,int b)
8:
11:
12: int math::multiply(int a,int b)
13:
測試**:

1: #include "stdafx.h"

2: #include
3: using

namespace std;

4:
5: #include "../mathlib/mathlib.h"
6: #pragma comment(lib,"../debug/mathlib.lib")
7:
8: int _tmain(int argc, _tchar* argv)
9:
出處:

DLL中匯出全域性變數

ifndef lib h define lib h extern int dllglobalvar endif include lib.h include int dllglobalvar bool apientry dllmain handle hmodule,dword ul reason fo...

lib和dll中的全域性變數

lib lib中的全域性變數在鏈結它的單元中是可以通過extern訪問到的,但是鏈結它的單元如果定義了乙個相同的全域性變數那麼lib中的全域性變數將被忽略,而且不會出現重複定義的錯誤。lib中的函式則不相同如果鏈結它的單元有了相同的函式就會發生重複定義。在lib的cpp中定義乙個靜態的變數會被所有用...

VC全域性變數的使用

全域性變數一般這樣定義 1。在一類的.cpp中定義 int myint 然後再在要用到的地方的.cpp裡extern int myint 這樣就可以用了。2。在stdafx.cpp中加入 int myint 然後在stdafx.h中加入 extern int myint 這樣定義以後無論在什麼檔案中...