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使用!代码量太大!

 

posted on 2019-09-11 15:01  KHacker  阅读(434)  评论(0编辑  收藏  举报