读书人

windows程序设计初学者有关问题 恳请各

发布时间: 2012-04-17 15:06:33 作者: rapoo

windows程序设计菜鸟问题 恳请各位的解答
麻烦各位看看我的错误,编译错误提示在最后面,我已经用====标出来了,菜鸟级别,照书打出的程序。

C/C++ code
#include<windows.h>#include <stdio.h>#include "StdAfx.h"LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,LPSTR lpszCmdLine, int nCmdShow){    HWND hwnd;    MSG Msg;    WNDCLASS wndclass;    char lpszClassName[]="Windows";    char lpszTitle[]="My_Windows";    wndclass.style=0;    wndclass.lpfnWndProc=WndProc;    wndclass.cbClsExtra=0;    wndclass.cbWndExtra=0;    wndclass.hInstance=hInstance;    wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);    wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);    wndclass.lpszClassName=NULL;    wndclass.lpszClassName=lpszClassName;//=============================================错误一    if(!RegisterClass(&wndclass))    {        MessageBeep(0);        return FALSE;    }    hwnd=CreateWindow(lpszClassName,lpszTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);//================================================错误二    ShowWindow(hwnd,nCmdShow);    UpdateWindow(hwnd);    while(GetMessage(&Msg,NULL,0,0))    {        TranslateMessage(&Msg);        DispatchMessage(&Msg);    }    return Msg.wParam;}LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    switch(message)    {    case WM_DESTROY:        PostQuitMessage(0);    default:        return DefWindowProc(hwnd,message,wParam,lParam);    }    return (0);}


错误信息:

1>------ Build started: Project: VC3.4.3, Configuration: Debug Win32 ------
1>Build started 2012/1/17 2:15:58.
1>InitializeBuildStatus:
1> Touching "Debug\VC3.4.3.unsuccessfulbuild".
1>ClCompile:
1> VC3.4.3.cpp
1>e:\visual studio 2010\vc3.4.3\vc3.4.3\vc3.4.3.cpp(3): warning C4651: '/D_UNICODE' specified for precompiled header but not for current compile
1>e:\visual studio 2010\vc3.4.3\vc3.4.3\vc3.4.3.cpp(3): warning C4651: '/DUNICODE' specified for precompiled header but not for current compile
1>e:\visual studio 2010\vc3.4.3\vc3.4.3\vc3.4.3.cpp(23): error C2440: '=' : cannot convert from 'char [8]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast//===================错误一
1>e:\visual studio 2010\vc3.4.3\vc3.4.3\vc3.4.3.cpp(29): error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'char [8]' to 'LPCWSTR'//错误二
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.65
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


请问各位这个错误怎么解决呢,网上的方法我试过了,把设置改成Use Multi-Byte Character Set(多字符集),用的是VS2010,开始选择的是MFC Application,直接点了finish,之后删除了原文件里面的所有文件,保留了头文件里面的文件,只建立了一个cpp文件如上图。万分感谢!!!!

还有一个问题,本人才接触Windows程序设计,现在用的是清华大学出版社的《VC++ 面向对象与可视化程序设计(第二版)》,目的是想先通过其入门,此题正是第三章最后的例子,请各位大牛推荐几本几本接下来可以看得书,非常感谢!

[解决办法]
char lpszClassName[]="Windows";
char lpszTitle[]="My_Windows";
-->
TCHAR lpszClassName[]=_T("Windows");
TCHAR lpszTitle[]= _T("My_Windows");

[解决办法]
#include<windows.h>
#include <stdio.h>
#include "StdAfx.h"
-->

#include "StdAfx.h"
#include<windows.h>
#include <stdio.h>

#include "stdafx.h"这句放在最前面

[解决办法]
蛋疼的mfc编码。。。lz要养成赋值字符串的时候使用_T("....")的习惯。。
[解决办法]

探讨

引用:

蛋疼的mfc编码。。。lz要养成赋值字符串的时候使用_T("....")的习惯。。


好的好的,我会记住这个错误的,谢谢你

读书人网 >VC/MFC

热点推荐