经典游戏内部 发表于 2015-2-11 22:20:24

“HWND”与“int”的间接级别不同

#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
static TCHAR szAppName[]=TEXT("简单程序");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.hCursor=LoadCursor(NULL,IDC_APPSTARTING);
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc=WndProc;
wndclass.lpszClassName=szAppName;
wndclass.lpszMenuName=NULL;

if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("只适合Windows NT运行!!!"),TEXT("提醒"),MB_OK);
return 0;
}
hwnd=CreateWindow(szAppName,TEXT("程序"),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,message,wParam,lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_CREATE:
MessageBox(NULL,TEXT("程序创建成功"),TEXT("创建"),MB_OK);
return 0;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);

DrawText(hdc,TEXT("一个简单的程序"),-1,&rect,DT_VCENTER|DT_SINGLELINE|DT_CENTER);
EndPaint(hwnd,&ps);
return 0;
case WM_CLOSE:
if(MessageBox(NULL,TEXT("确认关闭程序吗?"),TEXT("关闭"),MB_YESNO)==IDYES)
{
   WM_DESTROY;
}
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
DefWindowProc(hwnd,message,wParam,lParam);
return 0;
}

1>------ 已启动全部重新生成: 项目: class8, 配置: Debug Win32 ------
1>正在删除项目“class8”(配置“Debug|Win32”)的中间文件和输出文件
1>正在编译...
1>main.c
1>e:\vcr\class8\class8\main.c(59) : warning C4047: “函数”: “HWND”与“int”的间接级别不同
1>e:\vcr\class8\class8\main.c(59) : warning C4024: “BeginPaint”: 形参和实参 1 的类型不同
1>e:\vcr\class8\class8\main.c(64) : warning C4047: “函数”: “HWND”与“int”的间接级别不同
1>e:\vcr\class8\class8\main.c(64) : warning C4024: “EndPaint”: 形参和实参 1 的类型不同
1>e:\vcr\class8\class8\main.c(81) : warning C4047: “函数”: “HWND”与“int”的间接级别不同
1>e:\vcr\class8\class8\main.c(81) : warning C4024: “DefWindowProcW”: 形参和实参 1 的类型不同
1>正在编译资源清单...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation.All rights reserved.
1>正在链接...
1>LINK : 没有找到 E:\VCr\class8\Debug\class8.exe 或上一个增量链接没有生成它;正在执行完全链接
1>正在嵌入清单...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation.All rights reserved.
1>生成日志保存在“file://e:\VCr\class8\class8\Debug\BuildLog.htm”
1>class8 - 0 个错误,6 个警告
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========

为什么一直出现这种情况哦,实在是找不出问题,求解决哦,麻烦各位大侠帮帮忙哦

零度C 发表于 2015-2-12 08:57:51

本帖最后由 零度C 于 2015-2-12 09:15 编辑

LRESULT CALLBACK WndProc(hwnd,message,wParam,lParam)

改成:
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)

--------------------------------------------------------------------------------------------------------------------------

DefWindowProc(hwnd,message,wParam,lParam);
return 0;

改成:
return DefWindowProc(hwnd,message,wParam,lParam)

新手回贴,不喜勿喷

经典游戏内部 发表于 2015-2-14 16:59:31

零度C 发表于 2015-2-12 08:57
LRESULT CALLBACK WndProc(hwnd,message,wParam,lParam)

改成:


还是出现警告,不过程序是可以运行的
1>e:\vcr\class8\class8\main.c(59) : warning C4047: “函数”: “HWND”与“int”的间接级别不同
1>e:\vcr\class8\class8\main.c(59) : warning C4024: “BeginPaint”: 形参和实参 1 的类型不同
1>e:\vcr\class8\class8\main.c(64) : warning C4047: “函数”: “HWND”与“int”的间接级别不同
1>e:\vcr\class8\class8\main.c(64) : warning C4024: “EndPaint”: 形参和实参 1 的类型不同
1>e:\vcr\class8\class8\main.c(81) : warning C4047: “函数”: “HWND”与“int”的间接级别不同
1>e:\vcr\class8\class8\main.c(81) : warning C4024: “DefWindowProcW”: 形参和实参 1 的类型不同

freeparty 发表于 2015-3-3 23:28:04

这个只是警告,把错误代码贴出来。

智商是硬伤 发表于 2015-9-11 09:04:13

{:7_146:}
页: [1]
查看完整版本: “HWND”与“int”的间接级别不同