mfc-请教一个MFC程序运行出错的问题

问题描述

请教一个MFC程序运行出错的问题

void CMainFrame::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CTime time;
struct tm* osTime;
time = CTime::GetCurrentTime();
osTime = time.GetLocalTm(NULL);
m_strTime.Format("%2d:%2d:%2d:",osTime->tm_hour,osTime->tm_min,osTime->tm_sec);
m_wndStatusBar.SetPaneText(2, m_strTime);

CFrameWnd::OnTimer(nIDEvent);

}
这段代码是书上的用的是VC6,我用的是VS2013,编译的时候什么错误都没有,运行的时候就出问题了,DEBUG ASSERTION FAILED EXPRESSION:_ATL_CONDVAL,并且
就卡死在那了,只能结束VS2013的进程,如果把osTime = time.GetLocalTm(NULL);这句话去掉就不会出错,也不知道是什么原因,还请指教一下,先谢谢了。

解决方案

VC2013使用unicode,和VC6不同,需要相应的修改。

解决方案二:

字符集的问题。
2013缺省是unicode字符了。

m_strTime.Format(L"%2d:%2d:%2d:",osTime->tm_hour,osTime->tm_min,osTime->tm_sec);

时间: 2024-09-04 05:18:11

mfc-请教一个MFC程序运行出错的问题的相关文章

控件-请教一个MFC程序的问题

问题描述 请教一个MFC程序的问题 oid C123Dlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 www= FindWindow(L"无标题 - 记事本",NULL); www->SetForegroundWindow(); } 这个程序运行会出错请问为什么呀? 出错提示:0x003c0774处有未经处理的异常,0xc0000005:读取位置0x00000020 时发生访问冲突. www为类中定义的成员变量CWnd* 请问

c++-请教一个MFC程序代码的问题

问题描述 请教一个MFC程序代码的问题 void CmouselessionDlg::OnMouseMove(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 if (nFlags == MK_LBUTTON) { CClientDC ddd(this); CPen ppen; ppen.CreatePen(1, 5, RGB(0, 0, 255)); ddd.SelectObject(ppen); ddd.MoveTo(pt)

c++-请教一个MFC提示键盘按键的程序的问题

问题描述 请教一个MFC提示键盘按键的程序的问题 我看到别人做的按下哪个键就弹出提示:"你按下了哪个键",用的是PRETRANSLATE这个 虚函数,我想请问一下,如果不用这个虚函数,用WM_KEY DOWN UP这样的键盘 消息不是也可以吗?这两者有什么区别呢? 解决方案 也是可以的,不过子控件如果接收键盘消息,比如文本框,那么主窗体就得不到了. 解决方案二: PreTranslateMsg除了判断单个按键,还可以处理组合健.这是它功能更强大的地方. 解决方案三: 当然可以,区别好像

c++-请教一个MFC函数里鼠标画线的问题

问题描述 请教一个MFC函数里鼠标画线的问题 void C3Dlg::OnMouseMove(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 if (nFlags == MK_LBUTTON) { dc->MoveTo(pt); dc->LineTo(point.x , point.y ); } pt = point; CDialogEx::OnMouseMove(nFlags, point); } 请问下这个程序如果把 P

c++-请教一个MFC DC类的问题

问题描述 请教一个MFC DC类的问题 请问下,如果想做一个程序比如我想在程序上画线,这样定义的DC必须要是指针吗?如果不是 的话会有什么后果呢? 解决方案 只要你能获取正确的画图dc对象,就可以画图,然后据说画图位置,比如OnPaint,OnDraw函数中,进行i 需要的画图. 解决方案二: 没有必要一定使用指针,只要正确使用 DC 就行. 但一般来说,使用 DC 指针比较多.

c++-请教一个MFC关于GDI画图的问题

问题描述 请教一个MFC关于GDI画图的问题 可能是上面几个问题没有表达清楚,我就是想问如果大家做一个MFC的对话框程序 在程序上画线这么一个程序,肯定要用到DC是吧?如果您 的DC在DLG类的头文件中定义 的话,您们一般是会用指针的还是非指针的呢?为什么呢? 解决方案 直接使用DC对象,是不是用指针不重要. 解决方案二: dc pdc,你看一般代码不是都这么写的,怎么用都行 解决方案三: 一般用CDC的指针,如果你一定要用对象那就在.h文件里加一个成员变量,然后可以这样对他初始化. void

c++-请教一个MFC代码的问题

问题描述 请教一个MFC代码的问题 void CmouselessionDlg::OnMouseMove(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 if (nFlags == MK_LBUTTON) { CClientDC ddd(this); CPen ppen; ppen.CreatePen(1, 5, RGB(0, 0, 255)); ddd.SelectObject(ppen); ddd.MoveTo(pt);

请教一个MFC struct tm结构体的问题

问题描述 请教一个MFC struct tm结构体的问题 请问下我如果要用这个结构体的话,是用struct tm *还是struct tm?我用VS2013发现如果用带星号指针类型的话会出错,用后者就完全好用,请问是什么情况呀?这两者请问有什么 区别吗? 解决方案 用struct tm *还是struct tm 都可以,但是使用指针你需要分配空间给指针的 解决方案二: 要先用new或者malloc分配控件. 解决方案三: 要先用new或者malloc分配空间. 解决方案四: struct tm

技术-MFC实现一个SDI程序,要求

问题描述 MFC实现一个SDI程序,要求 MFC实现一个SDI程序,要求包含一个对话框,输入文字,运用文件读写技术,将文字画在窗体上 解决方案 新建一个叫CSDIDlgApp的程序 在你的Doc里面加入 public: CString text; void CSDIDlgAppView::OnDraw(CDC* pDC) { CSDIDlgAppDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for na