C++ 使用AdbHelper静态链接库
## 必备文件:静态库AdbHelper.h,AdbHelper.lib以及动态库AdbHelper.dll
## 资源文件使用用法:
1、首先在头文件中添加AdbHelper.h的头文件,头文件中是静态链接库的接口方法说明
2、其次在资源文件中添加AdbHelper.lib的静态资源文件,头文件中是静态链接库的接口方法说明
3、在需要使用到地方使用即可正常使用,如下:
···
include包含引用AdbHelper.h文件
#include "AdbHelper.h"
使用
// 点击连接,启动服务
void CMFCApplication6Dlg::OnBnClickedButton2()
{
int res= Start();
//assert(res == 0);
}
···
## 通用使用用法:
1、首先在头文件中添加AdbHelper.h的头文件,头文件中是静态链接库的接口方法说明
2、其次选择项目,右键属性, 配置属性,链接器 输入 附加依赖项,弹窗选择静态链接库lib文件,如下图:
![静态链接库使用说明图片](F://Temp//test//MFCApplication6//MFCApplication6//res//静态链接库使用说明.pngG) (步骤2 也可以使用:#pragma comment(lib,"MyLib.lib"),可以替代手动链接lib文件,显示加载链接库)
3、在需要使用到地方使用即可正常使用,如下:
···
include包含引用AdbHelper.h文件
#include "AdbHelper.h"
使用
// 点击连接,启动服务
void CMFCApplication6Dlg::OnBnClickedButton2()
{
int res= Start();
//assert(res == 0);
}
···
C++ 使用AdbHelper动态链接库
通用使用用法:
1、在需要使用到地方使用即可正常使用,如下:
···
代码
#include
#include "windows.h"
/* Windows头文件中包含可以加载DLL的函数。---注意要先声明一下对应的指针函数接口 */
typedef int(*ptrSub)(int, int);
HMODULE hMod = LoadLibrary(L"TestDll.dll");
/* 在调用DLL函数之前,要定义函数指针,用来调用函数。可以看出,函数指针的类型与DLL中的要一致。*/
//HMODULE hMod = LoadLibrary(L"AdbHelper.dll");
/* 调用LoadLibrary函数加载DLL文件。加载成功,hMod指针不为空。这里也可以是一个地址加文件名 */
使用
///
/// 调用TestDll.dll中的加法函数--sum
///
void CMFCWinformAppTestDlg::OnBnClickedButton11()
{
if (hMod != NULL)
{
/*
如果加载成功,则可通过GetProcAddress函数获取DLL中需要调用的函数的地址。
获取成功,sum指针不为空。
*/
ptrSub sum = (ptrSub)GetProcAddress(hMod, "sum");
if (sum != NULL)
{
int a = sum(10, 6);
CString temp_value = _T("处理数据:"); //temp_value用来处理float值
temp_value.Format(_T("%d"), a);//固定格式
//AfxMessageBox("10 - 6 =" + temp_value);
CString tempvalue = _T("10 - 6 =" + temp_value);
MessageBox(tempvalue, _T("标题"), MB_USERICON | MB_OK);
//std::cout << "10 + 6 = " << a << std::endl;
/*获取地址成功后,通过sum调用函数功能。*/
}
//FreeLibrary(hMod);
/*在完成调用功能后,不在需要DLL支持,则可以通过FreeLibrary函数释放DLL。*/
}
}
///
/// 调用TestDll.dll中的减法法函数--minus
///
void CMFCWinformAppTestDlg::OnBnClickedButton12()
{
if (hMod != NULL)
{
/*
如果加载成功,则可通过GetProcAddress函数获取DLL中需要调用的函数的地址。
获取成功,sum指针不为空。
*/
ptrSub minus = (ptrSub)GetProcAddress(hMod, "minus");
if (minus != NULL)
{
int a = minus(10, 6);
CString temp_value = _T(""); //temp_value用来处理float值
temp_value.Format(_T("%d"), a);//固定格式
//AfxMessageBox("10 - 6 =" + temp_value);
CString tempvalue = _T("10 - 6 =" + temp_value);
MessageBox(tempvalue, _T("标题"), MB_USERICON | MB_OK);
//int result = MessageBox(TEXT("10 - 6 = a"), TEXT("新建任务"), MB_YESNO);
//std::cout << "10 - 6 = " << a << std::endl;
/*获取地址成功后,通过sum调用函数功能。*/
}
FreeLibrary(hMod);
/*在完成调用功能后,不在需要DLL支持,则可以通过FreeLibrary函数释放DLL。*/
}
···
测试程序TestDll.dll,源C++项目TestDll,编译生成TestDll.dll,TestDll.lib以及头文件Add.h
Original: https://www.cnblogs.com/1175429393wljblog/p/16477627.html
Author: 龙骑科技
Title: C++ 使用静态链接库和动态链接库
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/535324/
转载文章受原作者版权保护。转载请注明原作者出处!