2016-08-19 101 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

相關問題