遇到VC一个奇怪的问题——DLL导致程序进不了入口 一个非常搞笑的操作,dll里面导致死循环,当然这是猜测。分析下dll里面做了什么事。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很简单的操作BOOL COnvifDemoDlg::OnInitDialog(){................... // TODO: 在此添加额外的初始化代码 ONVIFNET_Init(NULL, 0);}只要,链上该库就会死住,进不了程序入口。DLL中就初始化而已://初始化环境BOOL ONVIFNET_Init(fONVIFDisConnect cbDisConnect, DWORD dwUser){ bool ret = false; init_comm_param param; param.high_press = false; param.thread_num = 1; ret = init_comm(¶m); if ( !ret ) { OutputDebugStringA("init_comm failed!\n"); return FALSE; } ret = sdk_sys::instance()->init(32); if ( !ret ) { OutputDebugStringA("sdk_sys::instance()->init failed!\n"); sdk_sys::instance()->uninit(); sdk_sys::uninstance(); uninit_comm(); return FALSE; } //if (cbDisConnect) //{ // //sdk_sys::instance()->setDisCallback(cbDisConnect, dwUser); //} return TRUE;} 这个原因,可能性最大,因为第三方库太多了,况且不是我编译的,问题可能就出在这里;只是困惑为什么lib方式就不存在这个问题呢? dllmain中不能做任何加载其他dll的动作,例如WSAStartup、CoInitialize等都是不允许的。你的initcomm不知道是干的什么,可能是类似的事情,这回导致严重问题 这也是别人的库,我只是调用,应该是初始化网络通信库~~~~~~~~,按理说dllmain应该在我调ONVIFNET_Init之前就完成了的,还是有可能是静态变量什么的初始化失败造成死锁~~~~~~ 这也是别人的库,我只是调用,应该是初始化网络通信库~~~~~~~~,按理说dllmain应该在我调ONVIFNET_Init之前就完成了的,还是有可能是静态变量什么的初始化失败造成死锁~~~~~~排查原因的时候可以用注代码的方式,逐步定位出问题的地方 vc2008mdc中三角函数的用法 一个棘手的连接数据库问题 vc++批量操作excel问题,急 .ini文件的问题 配置文件 谁有<<Visual C++.NET多媒体编程>>源码? 关于异步服务器和客户端的问题,哥哥姐姐帮忙,在线等 急急急!!error C2228: left of '.ReplaceSel' must have class/struct/union type急求解决,谢谢 char a = "helloiamtom"; 如何截取出 iamtom 关于录音输入设备选择 构造函数的意义 为什么没有大项目开发部署方面的书? 向个位高手请教dll自定义消息的接收与处理!!!
BOOL COnvifDemoDlg::OnInitDialog()
{
...................
// TODO: 在此添加额外的初始化代码
ONVIFNET_Init(NULL, 0);
}
只要,链上该库就会死住,进不了程序入口。
DLL中就初始化而已:
//初始化环境
BOOL ONVIFNET_Init(fONVIFDisConnect cbDisConnect, DWORD dwUser)
{
bool ret = false;
init_comm_param param;
param.high_press = false;
param.thread_num = 1; ret = init_comm(¶m);
if ( !ret )
{
OutputDebugStringA("init_comm failed!\n");
return FALSE;
} ret = sdk_sys::instance()->init(32);
if ( !ret )
{
OutputDebugStringA("sdk_sys::instance()->init failed!\n"); sdk_sys::instance()->uninit();
sdk_sys::uninstance();
uninit_comm(); return FALSE;
} //if (cbDisConnect)
//{
// //sdk_sys::instance()->setDisCallback(cbDisConnect, dwUser);
//} return TRUE;
}
这个原因,可能性最大,因为第三方库太多了,况且不是我编译的,问题可能就出在这里;只是困惑为什么lib方式就不存在这个问题呢?
这也是别人的库,我只是调用,应该是初始化网络通信库~~~~~~~~,按理说dllmain应该在我调ONVIFNET_Init之前就完成了的,还是有可能是静态变量什么的初始化失败造成死锁~~~~~~
这也是别人的库,我只是调用,应该是初始化网络通信库~~~~~~~~,按理说dllmain应该在我调ONVIFNET_Init之前就完成了的,还是有可能是静态变量什么的初始化失败造成死锁~~~~~~排查原因的时候可以用注代码的方式,逐步定位出问题的地方