我想看一个变量S的值,把断点设在这一行上,断点在oninitdialog()之后,对话框就出来了,我感觉对话框一出来debug的工具都不能用了,右键quickwatch是灰色的,watch窗口也不能输入变量。如果在oninitdialog()里,对话框出来之前,quickwatch就可以查看变量值,watch也可以输入,这是怎么回事?
解决方案 »
- 利用socket如何得到ftp上的所有文件的文件名
- 关于区域内载入动态GIF和控件背景透明的问题
- winxp远程注入线程成功(返回了句柄),但是线程马上就中止了,原因不明
- VC中如何判断串口是否可用!?在线等!~
- 关于error C2065: 'IHTMLFrameBase2' : undeclared identifier
- 谁知道如何修改缺省网关? 可以实现就行。
- bmp 256色文件有多大
- 有WIN98的兄弟们来帮个忙
- 如何改变一个对话框上的editbox的背景色?
- 介绍一本不错的书。
- 怎样才能用MFC创建没有菜单和工具栏的应用程序?
- 帮忙解释下这个函数:CDialogBar::Create
没有走到断点处?为什么?不是吧?难道执行完oninitdialog()对话框一出来就停在那里了?
-------没有这样的情况。应该是可以走到断点的,程序的代码是这样的:BOOL CMySocketDlg::OnInitDialog()
{
// TODO: Add extra initialization here
count=0;
m_list.InsertColumn(0,"消息");
m_list.SetColumnWidth(0,435);
m_edit.SetLimitText(99); serv.sin_addr.s_addr=htonl(INADDR_ANY);
serv.sin_family=AF_INET;
serv.sin_port=5000;
addrlen=sizeof(serv);
m_button.EnableWindow(FALSE); sock=socket(AF_INET,SOCK_STREAM,0);
if(bind(sock,(sockaddr*)&serv,sizeof(serv)))
{
m_edit.SetWindowText("绑定错误");
}else
{
m_edit.SetWindowText("服务器创建成功");
listen(sock,5);
AfxBeginThread(&thread,0);
}UINT thread(LPVOID p)
{
char buff[100];
CSize size;
size.cx=0;
size.cy=30;
int s=1;
CMySocketDlg *dlg=(CMySocketDlg*)AfxGetApp()->GetMainWnd();
dlg->msgsock=accept(dlg->sock,(sockaddr*)&(dlg->serv),&(dlg->addrlen));//!!!!
if(dlg->sock==INVALID_SOCKET)
{
dlg->m_edit.SetWindowText("Error accept");
}
else
{
dlg->SetForegroundWindow();
dlg->m_list.InsertItem(dlg->count++,"连接成功");
dlg->m_list.InsertItem(dlg->count++,inet_ntoa(dlg->serv.sin_addr));
dlg->m_list.Scroll(size);
dlg->m_button.EnableWindow(TRUE);
}
while(s!=SOCKET_ERROR)//我设置断点的行
{ s=recv(dlg->msgsock,buff,100,0);
dlg->SetForegroundWindow();
if(s!=SOCKET_ERROR)
{
dlg->m_list.InsertItem(dlg->count++,buff);
dlg->m_list.Scroll(size); } }
send(dlg->msgsock,"Disconnected",100,0);
dlg->m_list.InsertItem(dlg->count++,"Disconnected");
dlg->m_list.Scroll(size);
dlg->msgsock=NULL;
dlg->m_button.EnableWindow(FALSE);
closesocket(dlg->msgsock); AfxEndThread(0);
return 0;
}
调试执行(F5)
--------
就是调试执行然后对话框跳出来什么都不能用,断点设置在oninitdialog内时显示count值是0,现在watch里面显示symbol “count” not find。