记一次加载Dll失败的问题

出错信息:

加载riched20.dll,程序Debug窗口就不动了。并且_tWinMain也无法进入。

'Test111.exe': Loaded 'C:\Windows\System32\riched20.dll', No symbols loaded.

The program '[5812] Test111.exe: Native' has exited with code 0 (0x0).


1.在Test111的InitInstance打断点,无法进入。

2.在_tWinMain打断点还是无法进入。


不过此后发现.exe加载Dll的方法是先调用每一个Dll的InitInstance来初始化需加载的Dll,待所有的Dll都加载成功后,才调用

_tWinMain来启动主程序。


我然后挨个查找Test111.exe所依赖的Dll里面的初始化方法(对于MFC程序,就是InitInstance方法)。

但是哪里调用了这个InitInstance方法呢?

这你得找到C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\src\mfc\dllmodul.cpp里面有个

extern "C"
BOOL WINAPI InternalDllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
{
	...
	// 这里是以此初始化每个DLL的
	CWinApp* pApp; pApp = AfxGetApp();
	if (pApp != NULL && !pApp->InitInstance()) {
		// ...
	}
	...
}

然后我就发现我的一个DLL没有返回。故此主程序的Debug窗口就死锁了。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值