求助:vc++

wj5840491 2005-11-06 01:22:43
#include <windows.h>
#include "resource.h"
HWND hWndModeless=NULL;
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
BOOL CALLBACK HelpDlgPROC(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
static char szAppName[] = "示例" ;

HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;
wndclass.cbSize = sizeof (wndclass) ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (hInstance, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName =( MAKEINTRESOURCE(IDR_MENU2));
wndclass.lpszClassName = szAppName ;
wndclass.hIconSm = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)) ;

if(! RegisterClassEx (&wndclass))
{
MessageBeep(0);
return FALSE;
}
hwnd = CreateWindow (
szAppName, //窗口类名
"示例9_1", //窗口标题名
WS_OVERLAPPEDWINDOW , //窗口的风格
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口左上角坐标为默认值
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口的高和宽为默认值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此窗口的应用程序的当前句柄
NULL) ; //此值不使用
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{if(!IsDialogMessage(hWndModeless,&msg))
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}

LRESULT CALLBACK WndProc(
HWND hwnd, //窗口句柄
UINT iMsg, //代表所处理消息的消息值
WPARAM wParam, //消息的附加参数
LPARAM lParam) //消息的附加参数
{ static WNDPROC lpfnopenProc;
static HINSTANCE hInstance;
switch (iMsg)
{
case WM_CREATE:
hInstance=((LPCREATESTRUCT)lParam)->hInstance;
return 0;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDM_open:
hWndModeless=CreateDialog(hInstance,"open",hwnd,HelpDlgPROC);
//showWindow(hWndModeless,SW_SHOW);

break;

case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY :
PostQuitMessage (0) ; //调用函数PostQuitessage退出程序


return 0 ;

}
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
BOOL CALLBACK HelpDlgPROC(HWND hDlg,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
switch(iMsg)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
DestroyWindow(hDlg);
return TRUE;
}
break;
}
return FALSE;
}
错误:

al.cpp
E:\al\al.cpp(90) : error C2601: 'HelpDlgPROC' : local function definitions are illegal
E:\al\al.cpp(109) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

al.exe - 2 error(s), 0 warning(s)
...全文
107 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2005-11-07
  • 打赏
  • 举报
回复
代码风格不好,看不清楚。
niefuhua 2005-11-07
  • 打赏
  • 举报
回复
看不清楚,不过我得第一感觉是第二个错误是由于没有包含"stdafx.h"引起的,解决办法:
在最前面添加#include "stdafx.h"
蒋晟 2005-11-06
  • 打赏
  • 举报
回复
local function definitions are illegal
明显花括号不匹配

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧