//sub.h
#ifndef _SUB_H
#define _SUB_H
_declspec(dllexport) void sub(int a,int b);
#endif
//sub.cpp
#include "sub.h"
#include <iostream>
void sub(int a,int b)
{
std::cout<<(a-b)<<std::endl;
}
选静态或者动态,静态生成.lib,动态生成.lib和.dll
最后使用是其实只需要用到 "sub.h", "sub.lib" 和 "sub.dll"即可,建议可以如下重新生成一个接口声明文件替代“sub.h”交予用户,这个“api.h”内容如下:
#ifndef _API_H #define _API_H #pragma comment(lib, "sub.lib") _declspec(dllimport) int ADD(int a, int b); #endif
其中 “_declspec(dllimport)" 同样可以去掉不要。此外,基本上VS下面 _declspec(dllexport)和 _declspec(dllimport)互相替换同样可以编译通过,其实作用不大,貌似是为了兼容老版本或VC的。但是,个人感觉在正确的地方使用dllexport或dllimport可以是程序更清晰。
这一版总结较上一版最大的区别就是减少了冗余的生命,是的模块间关系更清晰。
时间: 2024-10-13 12:44:34