这里的一直提示 未声明的标识符 mfc初学者

ZJ729286823 2015-07-25 05:43:10
程序是mfc编程实现了lr分析器,
头文件包含如下
#include "stdafx.h"
#include "LR.h"
#include "LRDlg.h"
#include "afxdialogex.h"
#include"status_stack.h" //状态栈
#include"symbol_instr_stack.h" // 符号输入串栈
#include"llrr.h" 这是lr分析表的一个头文件

BOOL WINAPI Main_Proc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
//HANDLE_MSG(hWnd,WM_INITDIALOG,Main_OnInitDialog);这里我给注释掉了
HANDLE_MSG(hWnd,WM_COMMAND,Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE,Main_OnClose);
}
return false;
}

之后的Main_OnCommand函数
void Main_OnCommand(HWND hwnd,int id,HWND hwndCtl,UINT codeNotify)
{
switch(id)
{
case IDC_BUTTON1:
{
//初始化各栈
init_stack(hwnd,status_p);
init_stack(hwnd,symbol_p);
init_stack(hwnd,instr_p);

//压进栈初始元素
push(hwnd,status_p,0);
push(hwnd,symbol_p,'#');

char x;
TCHAR msg[256];
GetDlgItemText(hwnd,IDC_EDIT3,msg,sizeof(msg));
unsigned int i;
for(i=0;i<strlen(msg);i++)
{
push(hwnd,symbol_p,msg[i]);
}
//然后由符号栈弹出,压进输入栈
while(symbol_p->top!=0)
{
x=pop(hwnd,symbol_p);
push(hwnd,instr_p,x);
}

print(hwnd,status_p,symbol_p,instr_p);
}
break;
case IDC_BUTTON2:
{
action(hwnd,status_p,symbol_p,instr_p);
}
break;
case IDC_BUTTON3:
{
SetDlgItemText(hwnd,IDC_EDIT1,TEXT(""));
SetDlgItemText(hwnd,IDC_EDIT2,TEXT(""));
SetDlgItemText(hwnd,IDC_EDIT3,TEXT(""));
SetDlgItemText(hwnd,IDC_EDIT4,TEXT(""));
}
break;
default:
break;
}
}

之后的Main_OnClose函数
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd,0);
}

程序编译一直提示
1>c:\users\zj\documents\visual studio 2012\projects\lr\lr\lrdlg.cpp(168): error C2065: “Main_OnCommand”: 未声明的标识符
1>c:\users\zj\documents\visual studio 2012\projects\lr\lr\lrdlg.cpp(169): error C2065: “Main_OnClose”: 未声明的标识符

网上百度说是头文件顺序问题 可是改了还是提示这样的错误。
请问谁知道怎么修改这样才可以吗
mfc初学 求指导 谢谢
...全文
1631 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34709255 2017-08-14
  • 打赏
  • 举报
回复
#include"Resource.h" 这个声明要放在其他声明的前面才行。我自己试出来的。
幻夢之葉 2015-07-26
  • 打赏
  • 举报
回复
引用 2 楼 ZJ729286823 的回复:
BOOL WINAPI Main_Proc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { //HANDLE_MSG(hWnd,WM_INITDIALOG,Main_OnInitDialog);这里我给注释掉了 HANDLE_MSG(hWnd,WM_COMMAND,Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE,Main_OnClose); } return false; } 这里的作用谁能指导一下啊 有点糊涂
这里是回调函数,用于响应你主界面/控件的消息(如鼠标点击等) 还有你在使用Main_OnClose,Main_OnCommand的时候没有先声明
weixin_30101819 2015-07-25
  • 打赏
  • 举报
回复
头文件里要先声明这个函数
k642311153 2015-07-25
  • 打赏
  • 举报
回复
函数定义要在函数调用之前
ZJ729286823 2015-07-25
  • 打赏
  • 举报
回复
BOOL WINAPI Main_Proc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { //HANDLE_MSG(hWnd,WM_INITDIALOG,Main_OnInitDialog);这里我给注释掉了 HANDLE_MSG(hWnd,WM_COMMAND,Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE,Main_OnClose); } return false; } 这里的作用谁能指导一下啊 有点糊涂
ZJ729286823 2015-07-25
  • 打赏
  • 举报
回复
代码贴出的是一部分
通过本课程学习您可以学习到Dart语言如下知识:第1章 Dart语言概述:Dart语言简介、Dart语言支持平台开发、Flutter为什么选择Dart语言。第2章 开发环境搭建:下载Dart SDK、Windows下安装Dart SDK、macOS下安装Dart SDK、Visual Studio Code开发工具、IntelliJ IDEA开发工具。第3章 完成个Dart程序:动动手写一个HelloWorld、Dart源代码文件组织结构、Visual Studio Code调试Dart代码、IntelliJ IDEA调试Dart代码。第4章 Dart语法基础:标识符、关键字、变量、常量、注释、库。第5章 Dart数据类型:数值类型、字符串、数据类型相互转换、布尔类型和枚举类型第6章 运算符:算术运算符、算术赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符、类型检查运算符。第7章 控制语句:分支语句、循环语句、跳转语句。第8章 函数:函数声明、可选参数、头等函数(first-class function)、匿名函数。第9章 类:类声明、getter和setter访问器、构造函数、静态变量和静态方法、级联符号。第10章 继承与多态:Dart中的继承实现、调用父类构造函数、成员变量的覆盖(Override)、方法的覆盖(Override)、多态、混入(Mixins)。第11章 抽象类与接口:抽象类、接口、Dart中隐式接口、实现接口。第12章 数据容器:List容器、Set容器、Map容器、泛型。第13章 异常处理:捕获异常、try-on捕获异常、try-catch捕获异常、try-on-catch捕获异常、使用finally代码块、手动抛出异常、自定义异常类。第14章 异步编程:Dart异步处理机制、案例:同步函数实现读取文件、案例:异步函数实现读取文件、Future对象。  

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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