VS之动态库调试

本文详细介绍了如何在VS2008中进行动态库的调试,包括创建调用动态库的应用程序,设计动态库接口和调用接口类,新建对话框动态库,以及设置动态库调试的具体步骤,提供了清晰的开发流程和文件结构图。
摘要由CSDN通过智能技术生成

程序开发中,经常会使用到动态库,动态库不能直接运行,需要依赖其他程序调用,那么我们该如何调试我们的动态库呢?本文通过一个简单的例子说明。

使用工具:VS2008

使用语言:C++

开发步骤:

1.调用动态库的应用程序

1.1新建对话框应用程序


1.2设计动态库接口

该接口用于在加载动态库时显示动态库的一些基本信息
DllTestAppDlg.h
struct tDLL_INFORMATION
{
	LPCTSTR	sDLLName;
	LPCTSTR	sFuncDescr;
	LPCTSTR	sAuthorName;
};

typedef bool (*LPFNREGISTER_CreateObject)(void**);
typedef bool (*LPFNREGISTER_GetDllInformation)(void**);
typedef bool (*LPFNREGISTER_ReleaseObject)(void*);
DllTestAppDlg.cpp
void CDllTestAppDlg::OnBnClickedBtnLoad()
{
	CString s1 = _T(""), s=_T("");
	s = _T("dll files(*.dll)|*.dll|所有文件(*.*)|*.*||");
	CFileDialog de(true, s1, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR,s, NULL );
	if(de.DoModal() == IDOK)
	{
		m_sDllPathName = de.GetPathName();		//path and filename
	}
	else
	{
		return;
	}

	if(m_sDllPathName.IsEmpty())
	{
		m_btnRunDll.EnableWindow(FALSE);
	}
	else
	{
		m_btnRunDll.EnableWindow(TRUE);
	}

	CString str = _T("");
	int cnt = 0,i = 0;
	char p[256]={0};
	LPFNREGISTER_GetDllInformation lpfnRegister;
	HINSTANCE hInDll = NULL;
	hInDll = LoadLibrary(m_sDllPathName);
	str = _T("GetDllInformation");
	cnt = str.GetLength();
	for(i=0; i<cnt; i++)
	{
		p[i] = str.GetAt(i);
	}
	lpfnRegister=(LPFNREGISTER_GetDllInformation)GetProcAddress(hInDll,p);

	tDLL_INFORMATION* pInfo = NULL;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值