DLL对应的导入库一定会生成的

Posted khacker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DLL对应的导入库一定会生成的相关的知识,希望对你有一定的参考价值。

 

测试代码:

#pragma once
#define TESTDEPEND_EXPORTS
#ifdef TESTDEPEND_EXPORTS  
#define TESTDEPEND_API __declspec(dllexport)   
#else  
#define TESTDEPEND_API __declspec(dllimport)   
#endif  

#include <string>

class A {
public:
	TESTDEPEND_API A();
	TESTDEPEND_API void hello(std::string name);
private:
	int c;
	int b;
};



#include "A.h"

#include <iostream>

A::A() : b(1), c(2) {

}

void A::hello(std::string name) {
	std::cout << b - c << "-hello-" << name << std::endl;
}

  生成的文件:

技术图片

 

连接器,高级导入库里面可以进行设置。

 技术图片

 

隐式链接指将DLL的函数符号输出库LIB链接,在执行文件中IMPORT段加入一系列函数的入口点!程序在加载启动时自动加载这些DLL,并查找函数入口点!像普通的SDK程序要加入KERNEL32。LIB链接就是!这样的方法是当使用DLL多时,程序启动很慢、!     动态链接指显式加载DLL,利用LoadLibrary,GetProcAddress取得函数入口点,执行再释放,这种方法是程序简洁,快速!但是不利于输出太多函数的DLL使用!代码量太大!

 

以上是关于DLL对应的导入库一定会生成的的主要内容,如果未能解决你的问题,请参考以下文章

生成读取相关连接的物理地址的lib(动态导入库)和dll(动态链接库)

Eclipse 动态库调试(联合调试)

windows生成库文件

qt链接在lib\libqt5cored.a很慢

是否总会有一个与您构建的 .dll 相关联的 .lib(导入库)?

C++中lib 和 dll 的区别,生成以及使用详解