同样的一个程序,在vc6.0上正确运行,在vs2010上报错,求解释

void MyPrint(HWND hWnd)
{
PAINTSTRUCT ps;
HDC hdc;
hdc = BeginPaint(hWnd, &ps) ;
char szText[ ] = "手工编写 Windows 程序!";//语法错误 : 缺少“;”(在“类型”的前面)
::TextOut(hdc,100,100,szText, lstrlen(szText)) ;//语法错误 : 缺少“;”(在“:”的前面)
EndPaint(hWnd, &ps);
}

第1个回答  2013-04-11

尝试把以下行交换位置:


hdc = BeginPaint(hWnd, &ps) ;
char szText[ ] = "手工编写 Windows 程序!";//语法错误 : 缺少“;”(在“类型”的前面)

追问

经过交换,还有一个报错::TextOut(hdc,100,100,szText, lstrlen(szText)) ;//少分号

第2个回答  2013-04-15
char szText[ ] = "手工编写 Windows 程序!";
改成:char szText[ ] = { "手工编写 Windows 程序!" };试试追问

还是不行.郁闷啊

追答

把hdc = BeginPaint(hWnd, &ps) ;
改成hdc = BeginPaint(hWnd, ps) ;试试
因为结构名已经是指针了。

追问

那还是不行,类型不符合

追答

可以将前面几句复制到一个新的函数中编译或者重新输入一遍,估计是输入时误输入了控制字符了。

追问

依然无解,给跪了

追答

PAINTSTRUCT ps,*pps;
pps=&ps;
hdc = BeginPaint(hWnd, pps) ;

追问

真的不懂了,照跪...这vs2010语法检测太苛刻了把,vc6.0能通过的,它报错,还是无解的那种。。另一个程序也是像现在这样。。。

追答

BeginPaint定义有问题?

本回答被网友采纳
相似回答