创建动态库
测试环境为VS2019 , 创建一个空项目,在项目上右键,进入属性,常规,配置类型改为动态库DLL
…h文件
// MyLibrary.h
#pragma once
#ifdef MYLIBRARY_EXPORTS
#define MYLIBRARY_API __declspec(dllexport)
#else
#define MYLIBRARY_API __declspec(dllimport)
#endif
extern "C" MYLIBRARY_API int add(int p_ia , int p_ib);
// 字符串处理函数
extern "C" MYLIBRARY_API void reverse_string(char* str);
.cpp文件
#include<iostream>
#include"add.h"
using namespace std;
int add(int p_ia, int p_ib)
{
return p_ia + p_ib;
}
// 字符串处理函数
void reverse_string(char* str)
{
int len = 0;
while (str[len] != '\0') len++;
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
到此动态库创建完成
调用动态库
1、采用pragma comment(lib,“***.lib”)方式
1、将头文件,.dll .lib 拷贝到当前文件夹下,其他什么依赖项,库目录都不需要配置,这种方法简单直接
#include<iostream>
#include"../Project1/add.h"
#pragma comment(lib , "Project1.lib")
using namespace std;
int main()
{
int ret = add(100,2090);
cout << ret << endl;
cout << "1111111" << endl;
char s[] = "123456";
reverse_string(s);
cout << s << endl;
return 0;
}
1、不用pragma comment
1、库目录添加,动态库的路径
2、链接器,输入,添加动态库的.lib文件
#include<iostream>
#include"../Project1/add.h"
//#pragma comment(lib , "Project1.lib")
using namespace std;
int main()
{
int ret = add(100,2090);
cout << ret << endl;
cout << "1111111" << endl;
char s[] = "123456";
reverse_string(s);
cout << s << endl;
return 0;
}