Visual Studio C++将cpp文件打包成lib库和dll库

  1. 新建一个C++控制台应用程序的项目
    创建一个头文件Interface.h
#include "Interface.h"
#include <iostream>

void Interface::Print() {
	std::cout << "Hello World ..." << std::endl;
}

创建一个源文件Interface.cpp

#include "Interface.h"
#include <iostream>

void Interface::Print() {
	std::cout << "Hello World ..." << std::endl;
}
  1. 右键解决方案属性 --> 配置属性 --> 常规 --> 配置类型 --> 选择动态库(.dll)/或者静态库(.lib)
    也要注意配置和平台分别是Release和x64
    在这里插入图片描述

  2. 去项目目录的x64/Release下就可以找到dll文件和lib文件了

  3. 新建另一个项目叫UseMyLib
    在项目根目录创建include文件夹和lib文件夹,include文件夹放Interface.h头文件,lib文件夹放MyLib.lib文件

  4. 右键解决方案属性 --> 配置属性 --> C/C++ --> 常规 --> 附加包含目录 --> 把include目录包含进去

  5. 链接器 --> 常规 --> 附加库目录 --> 把lib目录包含进来

  6. 链接器 --> 输入 --> 附加依赖项 --> 把MyLib.lib加进来

  7. 编写UseMyLib.cpp 的main函数

#include "Interface.h"
#include <iostream>

int main()
{   
    Interface itf;
    itf.Print();
}

此时,Interface 类的Print函数可调用。

一、简介   AheadLib 是用来生一个特洛伊DLL的工具,用于分析DLL中的函数参数调用(比如记录Socket send了什么等等)、更改函数功能(随心所欲了:)、更改界面功能(比如在Hook里面生一个按钮,截获事件等等)。 二、使用   1.用 AheadLib 打开要模拟的 DLL,生一个 CPP 文件。   2.用 Visual Studio 6.0/.NET 建立一个 DLL 工程,把这个 CPP 文件加入到项目中。   3.使用 Release 方式编译,生DLL 将和原来的 DLL 具有一模一样的导出函数,并且能顺利把这些函数转发到原来的函数中。   4.AheadLib 还可以生 Hook 代码,用于截取当前进程的所有消息,这样就可以随心所欲地处理各种消息了 (修改第三方程序界面功能的好助手)。 三、备注   1.如果导出函数过多,在 Visual Studio 6.0 中,如果出现编译错误,请在项目属性关闭与编译头功能。   2.如果是 C++ 、C __stdcall、C __fastcall 的方式导出的话,生的函数声明将会还原原代码级别(可能需要修改才能编译,比如导出C++类的情况)。此时使用 __declspec(dllexport) 导出 ——不能指定导出序号。   3.如果是 NONAME 或者 C _CDECL 方式导出(比如 DEF 导出,大多数Windows DLL都是这种情况,比如WS2_32等等),则使用#pragma comment(linker, "/EXPORT:...)导出,且指定导出序号。   4.如果系统中没有 DbgHelp.dll,将无法识别 C++ 模式的导出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值