无法调试完整代码以创建窗口

时间:2013-06-08 09:30:13

标签: c++ windows visual-studio-2010 visual-studio debugging

正如Creating a Window (Windows)所述:

  

“恭喜,你已经创建了一个窗口!现在,窗户确实如此   不包含任何内容或与用户互动。“

但我无法调试创建窗口时提到的完整代码。这是 main.cpp 来源:

#include <windows.h>

// Register the window class.
const wchar_t CLASS_NAME[]  = L"Sample Window Class";

WNDCLASS wc = { };

wc.lpfnWndProc   = WindowProc;
wc.hInstance     = hInstance;
wc.lpszClassName = CLASS_NAME;

RegisterClass(&wc);

// Create the window.

HWND hwnd = CreateWindowEx(
    0,                              // Optional window styles.
    CLASS_NAME,                     // Window class
    L"Learn to Program Windows",    // Window text
    WS_OVERLAPPEDWINDOW,            // Window style

    // Size and position
    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

    NULL,       // Parent window    
    NULL,       // Menu
    hInstance,  // Instance handle
    NULL        // Additional application data
    );

if (hwnd == NULL)
{
    return 0;
}

ShowWindow(hwnd, nCmdShow);

我正在使用 Visual Studio Express 2012 for Windows Desktop 。从新项目开始,选择 Visual C ++ 清空项目。我甚至尝试#include <iostream>没有和using namespace std;希望一点点......不幸的是,它没有解决问题。

调试会产生许多错误。其中一个可疑代码是“wc”

wc.lpfnWndProc   = WindowProc;
wc.hInstance     = hInstance;
wc.lpszClassName = CLASS_NAME;

RegisterClass(&wc);

对不起,(我想,这很简单,)因为我刚刚开始..

1 个答案:

答案 0 :(得分:2)

  

选择Visual C ++,清空项目

不要选择那个。请改为选择Win32 Project。您获得预先生成的代码,该代码实现了一切正确设置的最小本机Windows项目。扩展它并使它做一些有用的事情。

一旦你了解了这种编程的更多信息并且已经阅读了Petzold的“Programming Windows”三次,你就能够从头开始编写程序。然后选择guru设置并从“Empty Project”项目模板开始。尝试以相反的方式做到这一点不可避免地非常令人失望,你无法在一个会话中学习所有你需要做的事情。