多个dll延迟加载

本文详细介绍了如何在Windows编程中实现多个DLL的延迟加载,包括添加delayimp.lib库,指定延迟加载的DLL,配置卸载选项以及设置DLL的存放路径。遵循这些步骤,可以成功实现DLL的延迟加载功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.添加delayimp.lib

2.添加要延迟加载的dll

3.设置卸载选项。

4.多个dll放置的目录设置


如下:

2.

3.


4.设置dll延迟加载的目录

class CDelayDll
{
public:
	CDelayDll()
	{

		TCHAR tmp[MAX_PATH] = {0};
		unsigned long size = ::GetModuleFileName(GetModuleHandle("xDataProxy.dll"),tmp,MAX_PATH);
		if(MAX_PATH == size) return;

		char dir[MAX_PATH];
		char drive[_MAX_DRIVE];
		::_splitpath_s( tmp, drive, 3, dir, MAX_PATH, NULL, 0, NULL, 0 );
		::_makepath_s(tmp, MAX_PATH, drive, dir, NULL, NULL );

		std::string strTemp = tmp;
		tmp[strTemp.size()-1] = 0;
		strTemp = tmp;

		unsigned  nPos = strTemp.rfind("\\");
		if (nPos ==std::string::npos)
		{
			nPos = strTemp.rfind("//");
		}
		//在硬盘的根目录下则出错
		if (nPos > 3)
		{
			strTemp = strTemp.substr(0,nPos+1);
			strTemp += "plugins\\";
			SetDllDirectory(strTemp.c_str());
		}

	}
} g_initDelayDLL;


编译运行,OK!!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值