鱼C论坛

 找回密码
 立即注册
查看: 82|回复: 2

编译出错

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本人仿照《Windows环境下32位汇编语言设计(典藏版)》Chapter05\Menu程序。Main.rc和Main.asm全部是手动抄写录入的,但是在nmake时,提示如下错误:
对照检查也没看出来错在哪里,先把我手动录入的Main.rc贴出来,麻烦大神帮忙查看下错误在哪里?
//******************************************
#include  <resource.h>
//******************************************
#define        ICO_MAIN                0x1000        //图标
//******************************************
#define IDM_MAIN                0x2000        //菜单
#define        IDA_MAIN                0X2000        //加速键
#define        IDM_OPEN                0x4101
#define        IDM_OPTION                0x4102
#define        IDM_EXIT                0x4103
#define        IDM_SETFONT                0x4201
#define        IDM_SETCOLOR        0x4202
#define        IDM_INACT                0x4203
#define        IDM_GRAY                0x4204
#define        IDM_BIG                        0x4205
#define        IDM_SMALL                0X4206
#define        IDM_LIST                0x4207
#define        IDM_DETAIL                0x4208
#define        IDM_TOOLBAR                0x4209
#define        IDM_TOOLBARTEXT        0x4210
#define        IDM_INPUTBAR        0x4211
#define        IDM_STATUSBAR        0x4212
#define        IDM_HELP                0x4301
#define        IDM_ABOUT                0x4302
//****************************************
ICO_MAIN        ICON                "Main.ico"
//****************************************
IDM_MAIN        menu                discardable
BEGIN
        popup        "文件(&F)"
        BEGIN
                menuitem "打开文件(&O)...",        IDM_OPEN
                menuitem "关闭文件(&C)...",        IDM_OPTION
                menuitem separator
                menuitem "退出(&X)",        IDM_EXIT
        END
        popup        "查看(&V)"
        BEGIN
                menuitem        "字体(&F)...\tAlt+F",                IDM_SETFONT
                menuitem        "背景色(&B)...\tCtrl+Alt+B",        IDM_SETCOLOR
                menuitem        separator
                menuitem        "被禁用的菜单项",        IDM_INACT,        INACTIVE
                menuitem        "被灰化的菜单项",        IDM_GRAY,        GRAYED
                menuitem        separator
                menuitem        "大图标(&G)",        IDM_BIG
                menuitem        "小图标(&M)",        IDM_SMALL
                menuitem        "列表(&L)",                IDM_LIST
                menuitem        "详细资料(&D)",        IDM_DETAIL
                menuitem        separator
                popup                "工具栏(&T)"
                BEGIN
                   menuitem        "标准按钮(&S)",        IDM_TOOLBAR
                   menuitem        "文字标签(&C)",        IDM_TOOLBARTEXT
                   menuitem        "命令栏(&I)",        IDM_INPUTBAR
                END
                menuitem         "状态栏(&U)",        IDM_STATUSBAR
        END
        popup        "帮助(&H)",        HELP
        BEGIN
                menuitem "帮助主题(&H)\tF1",        IDM_HELP       
                menuitem separator
                menuitem "关于本程序(&A)...",        IDM_ABOUT
        END
END
//********************************************
IDA_MAIN        accelerators
BEGIN
                VK_F1,        IDM_HELP        VIRTKEY
                "B",        IDM_SETCOLOR,VIRTKEY,CONTROL,ALT
                "F",        IDM_SETFONT,VIRTKEY,ALT
END
//***********************************************
error.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
发现两个主要错误,修正后即可编译通过:

1. 头文件引用错误(第一行):
原代码:#include
应改为:#include <resource.h>
缺少头文件名会导致资源编译器找不到定义

2. 加速键表语法错误(倒数第二段):
原代码:

  1. IDA_MAIN        accelerators
  2. BEGIN
  3.     VK_F1,        IDM_HELP        VIRTKEY
  4.     "B",        IDM_SETCOLOR,VIRTKEY,CONTROL,ALT
  5.     "F",        IDM_SETFONT,VIRTKEY,ALT
  6. END
复制代码

应改为(修正逗号位置和VIRTKEY位置):

  1. IDA_MAIN        accelerators
  2. BEGIN
  3.     VK_F1, IDM_HELP, VIRTKEY
  4.     "B", IDM_SETCOLOR, VIRTKEY, CONTROL, ALT
  5.     "F", IDM_SETFONT, VIRTKEY, ALT
  6. END
复制代码


特别注意:
1. 每个加速键参数之间需要用逗号分隔
2. VIRTKEY必须作为独立参数出现
3. 检查Main.ico图标文件是否存在于当前目录

修正后的完整资源文件结构:

  1. //******************************************
  2. #include <resource.h>
  3. //******************************************
  4. #define ICO_MAIN        0x1000  //图标
  5. ...(中间定义保持不变)...
  6. //****************************************
  7. IDA_MAIN    accelerators
  8. BEGIN
  9.     VK_F1,  IDM_HELP,       VIRTKEY
  10.     "B",    IDM_SETCOLOR,   VIRTKEY, CONTROL, ALT
  11.     "F",    IDM_SETFONT,    VIRTKEY, ALT
  12. END
  13. //***********************************************
复制代码


常见其他注意事项:
  • 确保所有菜单项的ID值在0x4101-0x4212范围内没有重复
  • 检查菜单中的中文引号是否使用了半角符号(程序中的引号应为""而非“”
  • 确认资源文件名与工程文件中的引用一致


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 6 天前 | 显示全部楼层
还是不行的,提示不是虚拟键问题,而是这一行代码错误     menuitem        "被灰化的菜单项",        IDM_GRAY,        GRAYED
error1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-8 09:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表