很奇怪的问题,一个类指针new之后就卡了?

yann2 2014-06-21 06:04:50

// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);

CWinApp::InitInstance();

//Init Rand
random_seed((int)time(NULL));

AfxEnableControlContainer();

SetRegistryKey(_T("应用程序向导生成的本地应用程序"));

//DEBUG环境
#ifdef JTEST
DebugInit();
#endif

InitwmGlobalFuncion();

//Load Icon
g_hGameIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

//Start main wnd
CString strClassname = BuildString();
while(!CreateRegClass(strClassname, g_hGameIcon)) strClassname = BuildString();
DebugOut(L"new 前");
m_pWmLover = new CAutoParentMDE;
DebugOut(L"new 后");
if(!m_pWmLover->CreateEx(0, strClassname, TEXT(""), WS_POPUP|WS_SYSMENU|WS_CLIPCHILDREN, CRect(0,0,0,0), NULL, 0))
{
AfxMessageBox(_T("MainWnd CreateEx Faild!!"));
exit(0);
}

注意 本机测试无任何问题 以下情况是XP SP3 下虚拟机出现的(别人电脑 例如网吧的机器也OK)
这是一个对话框程序,这里代码是在主窗口的APP类的 InitInstance 函数中执行。
注意看,到那个 DebugOut(L"new 前"); 输出日志到控制台以后,执行下面的
m_pWmLover = new CAutoParentMDE;
然后就没动静了,程序界面看不见,进程有,我在CAutoParentMDE类的构造函数开头的地方加日志打印也没结果
不知道是什么原因,只要有这行类指针new的代码在 执行到这里就像卡了一样。。

屏幕看不到程序界面 进程里却是有 这个程序有用到GDI+ 还有那个 DirectSound 但是我研究排除了这2个。

电脑是虚拟机测试的 本机没问题 .net 1.1 VC2005 2008 2010发行组件

求解决。。求指点。。我要疯了
...全文
170 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sandrer 2014-06-22
  • 打赏
  • 举报
回复
你的虚拟机是VM吗? VM虚拟机安装好后会自动整合到VS上面 VS工具栏上会多出一排工具, 可以远程调试到虚拟机
worldy 2014-06-21
  • 打赏
  • 举报
回复
m_pWmLover = new CAutoParentMDE; 上设置断点,然后跟踪进去看看出来什么状况
Sandrer 2014-06-21
  • 打赏
  • 举报
回复
难道你就不能单步调试进去看看吗
pingshell 2014-06-21
  • 打赏
  • 举报
回复
可能是虚拟机环境问题?
yann2 2014-06-21
  • 打赏
  • 举报
回复
已解决,是DireSound播放声音有关系的问题。。 虚拟机开启声音设备就好了。。。奇怪的问题
hhhh63 2014-06-21
  • 打赏
  • 举报
回复
引用 6 楼 yann2 的回复:
[quote=引用 4 楼 hhhh63 的回复:] CAutoParentMDE 的构造函数是不是有大量运算?
没有大量运算。。。[/quote] 会不会内存不足?
krn 2014-06-21
  • 打赏
  • 举报
回复
windbg
yann2 2014-06-21
  • 打赏
  • 举报
回复
引用 3 楼 worldy 的回复:
m_pWmLover = new CAutoParentMDE; 上设置断点,然后跟踪进去看看出来什么状况
虚拟机里试的,代码在本地 怎么调哦?
yann2 2014-06-21
  • 打赏
  • 举报
回复
引用 4 楼 hhhh63 的回复:
CAutoParentMDE 的构造函数是不是有大量运算?
没有大量运算。。。
yann2 2014-06-21
  • 打赏
  • 举报
回复
引用 2 楼 Sandrer 的回复:
难道你就不能单步调试进去看看吗
哥啊,虚拟机啊。。。怎么单步调试啊?代码在本机啊
hhhh63 2014-06-21
  • 打赏
  • 举报
回复
CAutoParentMDE 的构造函数是不是有大量运算?

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧