2016-08-19 98 views
-4

好吧,所以我想学习C++并且想要使用visual studio 2013,对于C#一切正常。visual studio 2013 C++应用程序向导无限循环

为了更容易理解,我基本上是这样做的:https://msdn.microsoft.com/en-us/library/bb384843.aspx并且在第4步之后,它应该创建解决方案并打开文档,它会循环回到第一步,然后有时会出现正常窗口出错错误窗口。如果我尝试从文件夹打开解决方案,它也会出错。所以它(通常)创建文件,文件夹和解决方案,但错误。

我宁愿不重新安装它,但这是我能想到的唯一的事情。

我不认为我错过了任何明显的,只是基本上做什么,MSDN链接告诉我,但得到的错误。

回答

0

您的代码是不完整的,因为我想这就是为什么你得到了许多错误,要解决这个问题,确保你的代码是类似这样的:(复制过去,它在你的.cpp文件中)

// GT_HelloWorldWin32.cpp 
// compile with: /D_UNICODE /DUNICODE /DWIN32 /D_WINDOWS /c 

// Including files : 
#include <windows.h> 
#include <stdlib.h> 
#include <string.h> 
#include <tchar.h> 

// Global variables 

// The main window class name. 
static TCHAR szWindowClass[] = _T("win32app"); 

// The string that appears in the application's title bar. 
static TCHAR szTitle[] = _T("Win32 Guided Tour Application"); 

HINSTANCE hInst; 

// Forward declarations of functions included in this code module: 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); 

int WINAPI WinMain(HINSTANCE hInstance, 
    HINSTANCE hPrevInstance, 
    LPSTR lpCmdLine, 
    int nCmdShow) 
{ 
    WNDCLASSEX wcex; 

    wcex.cbSize = sizeof(WNDCLASSEX); 
    wcex.style = CS_HREDRAW | CS_VREDRAW; 
    wcex.lpfnWndProc = WndProc; 
    wcex.cbClsExtra = 0; 
    wcex.cbWndExtra = 0; 
    wcex.hInstance = hInstance; 
    wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION)); 
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW); 
    wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); 
    wcex.lpszMenuName = NULL; 
    wcex.lpszClassName = szWindowClass; 
    wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION)); 

    if (!RegisterClassEx(&wcex)) 
    { 
     MessageBox(NULL, 
      _T("Call to RegisterClassEx failed!"), 
      _T("Win32 Guided Tour"), 
      NULL); 

     return 1; 
    } 

    hInst = hInstance; // Store instance handle in our global variable 

         // The parameters to CreateWindow explained: 
         // szWindowClass: the name of the application 
         // szTitle: the text that appears in the title bar 
         // WS_OVERLAPPEDWINDOW: the type of window to create 
         // CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y) 
         // 500, 100: initial size (width, length) 
         // NULL: the parent of this window 
         // NULL: this application does not have a menu bar 
         // hInstance: the first parameter from WinMain 
         // NULL: not used in this application 
    HWND hWnd = CreateWindow(
     szWindowClass, 
     szTitle, 
     WS_OVERLAPPEDWINDOW, 
     CW_USEDEFAULT, CW_USEDEFAULT, 
     500, 100, 
     NULL, 
     NULL, 
     hInstance, 
     NULL 
    ); 

    if (!hWnd) 
    { 
     MessageBox(NULL, 
      _T("Call to CreateWindow failed!"), 
      _T("Win32 Guided Tour"), 
      NULL); 

     return 1; 
    } 

    // The parameters to ShowWindow explained: 
    // hWnd: the value returned from CreateWindow 
    // nCmdShow: the fourth parameter from WinMain 
    ShowWindow(hWnd, 
     nCmdShow); 
    UpdateWindow(hWnd); 

    // Main message loop: 
    MSG msg; 
    while (GetMessage(&msg, NULL, 0, 0)) 
    { 
     TranslateMessage(&msg); 
     DispatchMessage(&msg); 
    } 

    return (int)msg.wParam; 
} 

// 
// FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM) 
// 
// PURPOSE: Processes messages for the main window. 
// 
// WM_PAINT - Paint the main window 
// WM_DESTROY - post a quit message and return 
// 
// 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 
{ 
    PAINTSTRUCT ps; 
    HDC hdc; 
    TCHAR greeting[] = _T("Hello, World!"); 

    switch (message) 
    { 
    case WM_PAINT: 
     hdc = BeginPaint(hWnd, &ps); 

     // Here your application is laid out. 
     // For this introduction, we just print out "Hello, World!" 
     // in the top left corner. 
     TextOut(hdc, 
      5, 5, 
      greeting, _tcslen(greeting)); 
     // End application-specific layout section. 

     EndPaint(hWnd, &ps); 
     break; 
    case WM_DESTROY: 
     PostQuitMessage(0); 
     break; 
    default: 
     return DefWindowProc(hWnd, message, wParam, lParam); 
     break; 
    } 

    return 0; 
} 

Amrane Abdelkader。

+0

感谢您的回应,虽然它是一个很好的答案,但我实际上遇到了Visual Studio本身循环的问题。我结束了重新安装,似乎解决了这个问题。对不起,迟到的回应! – user2565352

相关问题