C++ 无法创建窗口 #包括 #包括 #包括 #pragma注释(链接器“\”/manifestdependency:type='win32'name='Microsoft.Windows.Common控件'\ version='6.0.0.0'processorArchitecture='*'\ publicKeyToken='6595b64144ccf1df'语言='*'\“”) LRESULT WINAPI WndProc(HWND HWND、UINT msg、WPARAM lParam、lParam WPARAM) { 返回DefWindowProc(hWnd、msg、wParam、lParam); } int-WinMain(HINSTANCE-hInst、HINSTANCE-hpInst、LPSTR-cmdLine、int-cmdshow) { 静态TCHAR类名称[]=_T(“SCONF”); 静态TCHAR wTitle[]=“服务器配置程序”); WNDCLASSEX WCLASSE; wClass.cbClsExtra=NULL; wClass.cbSize=sizeof(WNDCLASSEX); wClass.cbWndExtra=NULL; wClass.hbrBackground=(HBRUSH)(CTLCOLOR_滚动条); wClass.hCursor=LoadCursor(空,IDC_箭头); wClass.hIcon=LoadIcon(hInst,IDI_应用程序); wClass.hIconSm=LoadIcon(hInst,IDI_应用程序); wClass.hInstance=hInst; wClass.lpfnWndProc=WndProc; wClass.lpszClassName=classname; wClass.lpszMenuName=NULL; wClass.style=CS|HREDRAW | CS|VREDRAW; 如果(!RegisterClass(&wClass)) { MessageBox(NULL,L“无法注册类!”,L“错误”,MB|U ICONROR | MB|U OK); } RECT wr={0,0200250}; AdjustWindowRect(&wr,WS_标题,false); HWND HWND=CreateWindow( 类名, wTitle, 标题:, GetSystemMetrics(SM_CXSCREEN)/2-100, GetSystemMetrics(SM_CYSCREEN)/2-125, wr.right wr.left,//宽度 wr.底部wr.顶部,//高度 无效的 无效的 欣斯特, 无效); 如果(!hWnd) { MessageBox(NULL、_T(“无法创建窗口!”)、_T(“错误!”)、MB_ICONERROR); 返回1; } ShowWindow(hWnd、cmdshow); 味精; while(GetMessage(&msg,0,0,0)) { 翻译信息(&msg); 发送消息(&msg); } 返回(int)msg.wParam; }

C++ 无法创建窗口 #包括 #包括 #包括 #pragma注释(链接器“\”/manifestdependency:type='win32'name='Microsoft.Windows.Common控件'\ version='6.0.0.0'processorArchitecture='*'\ publicKeyToken='6595b64144ccf1df'语言='*'\“”) LRESULT WINAPI WndProc(HWND HWND、UINT msg、WPARAM lParam、lParam WPARAM) { 返回DefWindowProc(hWnd、msg、wParam、lParam); } int-WinMain(HINSTANCE-hInst、HINSTANCE-hpInst、LPSTR-cmdLine、int-cmdshow) { 静态TCHAR类名称[]=_T(“SCONF”); 静态TCHAR wTitle[]=“服务器配置程序”); WNDCLASSEX WCLASSE; wClass.cbClsExtra=NULL; wClass.cbSize=sizeof(WNDCLASSEX); wClass.cbWndExtra=NULL; wClass.hbrBackground=(HBRUSH)(CTLCOLOR_滚动条); wClass.hCursor=LoadCursor(空,IDC_箭头); wClass.hIcon=LoadIcon(hInst,IDI_应用程序); wClass.hIconSm=LoadIcon(hInst,IDI_应用程序); wClass.hInstance=hInst; wClass.lpfnWndProc=WndProc; wClass.lpszClassName=classname; wClass.lpszMenuName=NULL; wClass.style=CS|HREDRAW | CS|VREDRAW; 如果(!RegisterClass(&wClass)) { MessageBox(NULL,L“无法注册类!”,L“错误”,MB|U ICONROR | MB|U OK); } RECT wr={0,0200250}; AdjustWindowRect(&wr,WS_标题,false); HWND HWND=CreateWindow( 类名, wTitle, 标题:, GetSystemMetrics(SM_CXSCREEN)/2-100, GetSystemMetrics(SM_CYSCREEN)/2-125, wr.right wr.left,//宽度 wr.底部wr.顶部,//高度 无效的 无效的 欣斯特, 无效); 如果(!hWnd) { MessageBox(NULL、_T(“无法创建窗口!”)、_T(“错误!”)、MB_ICONERROR); 返回1; } ShowWindow(hWnd、cmdshow); 味精; while(GetMessage(&msg,0,0,0)) { 翻译信息(&msg); 发送消息(&msg); } 返回(int)msg.wParam; },c++,winapi,C++,Winapi,这是完整的代码,当我试图编译时,hWnd总是返回false…我甚至试图从一个工作程序复制代码,但它没有工作…这里发生了什么?它总是在…之前工作。您正在WndProc函数中扭曲/交叉wParam和lParam- #include <Windows.h> #include <stdlib.h> #include <tchar.h> #pragma comment(linker,"\"/manifestdependency:type='win32'name='Mi

这是完整的代码,当我试图编译时,hWnd总是返回false…我甚至试图从一个工作程序复制代码,但它没有工作…这里发生了什么?它总是在…之前工作。

您正在WndProc函数中扭曲/交叉wParam和lParam-

#include <Windows.h>
#include <stdlib.h>
#include <tchar.h>

#pragma comment(linker,"\"/manifestdependency:type='win32'name='Microsoft.Windows.Common-Controls'\
                version='6.0.0.0' processorArchitecture='*'\
                publicKeyToken='6595b64144ccf1df' language='*'\"")

LRESULT WINAPI WndProc(HWND hWnd,UINT msg,WPARAM lParam,LPARAM wParam)
{
    return DefWindowProc(hWnd,msg,wParam,lParam);
}

int WinMain(HINSTANCE hInst,HINSTANCE hpInst,LPSTR cmdLine,int cmdshow)
{
    static TCHAR classname[]=_T("SCONF");
    static TCHAR wTitle[]=_T("Server Configurator");

    WNDCLASSEX wClass;
    wClass.cbClsExtra=NULL;
    wClass.cbSize=sizeof(WNDCLASSEX);
    wClass.cbWndExtra=NULL;
    wClass.hbrBackground=(HBRUSH)(CTLCOLOR_SCROLLBAR);
    wClass.hCursor=LoadCursor(NULL,IDC_ARROW);
    wClass.hIcon=LoadIcon(hInst,IDI_APPLICATION);
    wClass.hIconSm=LoadIcon(hInst,IDI_APPLICATION);
    wClass.hInstance=hInst;
    wClass.lpfnWndProc=WndProc;
    wClass.lpszClassName=classname;
    wClass.lpszMenuName=NULL;
    wClass.style=CS_HREDRAW|CS_VREDRAW;
    if(!RegisterClassEx(&wClass))
    {
        MessageBox(NULL,L"Could not register class!", L"ERROR",MB_ICONERROR|MB_OK);
    }
    RECT wr={0,0,200,250};
    AdjustWindowRect(&wr,WS_CAPTION,false);

    HWND hWnd=CreateWindow(
        classname,
        wTitle,
        WS_CAPTION,
        GetSystemMetrics(SM_CXSCREEN)/2-100,
        GetSystemMetrics(SM_CYSCREEN)/2-125,
        wr.right-wr.left,//width
        wr.bottom-wr.top,//height
        NULL,
        NULL,
        hInst,
        NULL);

    if(!hWnd)
    {
        MessageBox(NULL,_T("Could not create window!"),_T("ERROR!"),MB_ICONERROR);
        return 1;
    }
    ShowWindow(hWnd,cmdshow);
    MSG msg;
    while(GetMessage(&msg,0,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int)msg.wParam;
}
我认为这没有帮助

LRESULT WINAPI WndProc(HWND hWnd,UINT msg,WPARAM lParam,LPARAM wParam) 
{
    return DefWindowProc(hWnd,msg,wParam,lParam);
}

LRESULT WINAPI WndProc(HWND hWnd,UINT msg,WPARAM lParam,LPARAM wParam) {
    return DefWindowProc(hWnd,msg,wParam,lParam);
}

您没有GetLastError()和FormatMessage()。哪个函数返回
FALSE
NULL
?如果有错误,请检查的结果以获取错误代码。为了澄清,您的意思是
CreateWindow
总是返回false,因为它存储在
hWnd
中?
LRESULT WINAPI WndProc(HWND hWnd,UINT msg,WPARAM lParam,LPARAM wParam) //check your parameter names!!!!!!!!!!!!!!!!!!!!!!!
{
    return DefWindowProc(hWnd,msg,wParam,lParam);
}