在DLL項(xiàng)目中。添加mydll.h/ mydll.cpp
- 原則情妖,
在DLL文件中蹄衷,將函數(shù)聲明為 _declspec(dllexport)
在CPP文件中正歼,將函數(shù)聲明為 _declspec(dllimport)
實(shí)現(xiàn)方法
使用條件編譯指令
mydll.h中輸入以下代碼
#ifndef MYDLL_H
#define MYDLL_H
#ifdef MYDLL_EXPORTS
#define MYDLL _declspec(dllexport)
#else
#define MYDLL _declspec(dllimport)
#endif
MYDLL int Add(int a, int b);
#endif // MYDLL_H
mydll.cpp中輸入以下代碼:
#include <stdio.h>
#define MYDLL_EXPORTS
#include "mydll.h"
int Add(int a, int b) {
return a + b;
}
編譯成功后可用動(dòng)態(tài)庫的簡(jiǎn)單使用及DLL的部署中的方法使用
使用方法2:vs2017工作環(huán)境下
用戶SDK
將這些包含到“系統(tǒng)目錄”中(配置vc++環(huán)境變量)
PATH
再將dll文件按照動(dòng)態(tài)庫的簡(jiǎn)單使用及DLL的部署中的方法部署
新建一個(gè)空項(xiàng)目赠尾,可以像使用標(biāo)注庫一樣用尖括號(hào)<>使用你的動(dòng)態(tài)庫了
在新項(xiàng)目CPP中輸入:
#include<stdio.h>
#include <mydll.h>
#pragma comment(lib,"Project1.lib")
int main() {
int a = Add(12, 5);
printf("%d", a);
getchar();
return 0;
}
編譯力穗,運(yùn)行成功
導(dǎo)出類的定義,其實(shí)就是導(dǎo)出類的成員函數(shù)
MyObject.h
#pragma once
#ifdef MYDLL_EXPORTS
#define MYDLL _declspec(dllexport)
#else
#define MYDLL _declspec(dllimport)
#endif // MYDLL_EXPORTS
class MYDLL MyObject
{
public:
MyObject(int v);
void print();
private:
int value;
};
MyObject.cpp
// MyObject.cpp: 定義 DLL 應(yīng)用程序的導(dǎo)出函數(shù)气嫁。
//
#include "stdafx.h"
#include <stdio.h>
#define MYDLL_EXPORTS
#include "MyObject.h"
MyObject::MyObject(int v):value(v){}
void MyObject::print() {
printf("%d....\n", value);
}
使用方法仍然是一樣的
??我的目標(biāo)是:someday当窗,即便你花錢看我的文章,也會(huì)覺得心滿意足