RadASM资源链接错误RC2104及找不到resource.h解决方案

MFC工程资源在另一个编辑器中打开(error RC2104 )解决方法 今天玩着玩着俺的Dialog界面编辑就不见了 我在项目里找,*.rc和*.rc2应该是控制这个编辑窗口界面的文件 但是当我打开我的.rc文件时,居然发现提示在另一个编辑器中打开 网上说,把各种相关的头文件关掉就好了 可是我的还是报错: 解决方法是: 经过对报错的研究发现是WS_EX_COMPOSITED这个用于控件样式扩展的变量缺少宏定义,只需要在 “Resource... 阅读详情

罗云彬的《Windows环境下32位汇编语言程序设计(琢石成器第3版)》确实是本好书,讲解生动,深入浅出,具备可操作性。现在的书尤其是教材抄来抄去,自己都没试过就copy到书里面,像罗云彬这么实操的书太难得了。
书里提供了makefile编译方法,简便易行,我在Win10 x64上一次成功。这也证明了windows强悍的向下兼容性。

不过命令行编译始终没有用IDE爽。用RadASM新建工程,文件夹选在有asm文件的文件夹,类型选Win32 APP,模板不选,什么都不导入,得到一个只有编译指令其他什么都没有的空工程。然后把asm, rc等文件拖入目录树。编译。

#include <resource.h>
#define     DLG_MAIN    1

DLG_MAIN    DIALOGEX 0, 0, 236, 185
STYLE       DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION     "对话框模板"
FONT        9, "宋体"
BEGIN
    DEFPUSHBUTTON   "退出",IDOK,177,163,50,14
    CONTROL     "",-1,"Static",SS_ETCHEDHORZ,7,155,222,1
END

先是说找不到resource.h。看文件夹,确实没有。新建一个空白的resource.h(注意这样做是错误的!)。继续编译。

然后就卡在rc编译res这里了,报错error RC2104 : undefined keyword or key name: DS_MODALFRAME。

顾名思义,是说不识别资源文件里的窗口类型。

下面这个是RadASM自动生成的rc文件:

#define IDD_DIALOG1 101
IDD_DIALOG1 DIALOGEX 6,6,194,106
CAPTION "DlgTest"
FONT 8,"MS Sans Serif"
STYLE 0x10CF0800
EXSTYLE 0x00000000
BEGIN
END

观察可以发现,RadASM的rc文件机理和VS不一样。VS把窗口属性写在rc文件里,编辑窗口即修改rc文件。而RadASM同步建立了一个.dlg文件,通过修改dlg文件来更新rc文件,rc文件中不保存宏命名,而是直接换成数值。

那怎么办?在rc文件里加上#include <windows.h>不行,识别不了,怎么弄都解决不了。这条路是错误的。

正解在看雪论坛这个贴https://bbs.pediy.com/thread-44929.htm

实际上masm32\include文件夹下面就有一个resource.h,这个是个公共文件,里面保存了常用的宏命名。这也是之前用makefile可以编译的原因。和VS不一样,VS的resource.h是用户定义的,但由VS负责维护,保存各个控件的ID映射。

解决方案:在RadASM中点 工程-工程选项,把资源编译脚本改成4,O,$B\RC.EXE /v,/I"$I",1

这样在编译时rc文件会链接到masm32带的resource.h作映射。注意工程目录下不能有同名的resource.h文件。

C/C++开发,VS2019编译pthreads-w32-2-9-1-release报错:错误 RC2104 undefined keyword or key name: PTW32_ARCH pth 寞水 阅读详情

相关推荐

DDR4 IP的用户接口

DDR4 IP核用户接口

bowen_wener的博客 1927

VS或者VC 报 error RC2104 错误及 资源管理 在另一个编辑器打开 的解决方法

笔者最近在用VS2015开发MFC项目时遇到一个纠结的问题,在进行界面编辑时发现VS报一个 “ error RC2104 :undefined keyWord or key name:WS_EX_COMPOSITED”,如图 图1 error 截图 经过对报错的研究发现是WS_EX_COMPOSITED这个用于控件样式扩展的变量缺少宏定义,只需要在 “Resource.h”中添加对应

kerwin的博客 7229

奥比中光Gemini335L SDK实战:从标定参数到3D点云转换

本文详细介绍了奥比中光Gemini 335L深度相机的SDK实战应用,重点讲解如何跳过繁琐的棋盘格标定,直接调用出厂预标定参数实现高效的3D点云转换。通过解析内参、外参获取及四种核心坐标转换模式,并结合OpenCV等工具,指导开发者快速将相机集成到机器人抓取、三维测量等项目中,实现开箱即用的3D视觉解决方案。

raspberrypi5的博客 641

纯C+纯手写+手动编译 一个windows 窗体应用(过程记录)

(纯C + 纯手写 + 手动编译) 一个Windows 窗体应用 本篇文章仅仅是作者的一个类似笔记一样的东西,作为记录。所以请勿出现如下不友善评论 啊,这不是某某IDE直接就可以生成的吗。 搞这个东西有什么意义啊,浪费时间。 正经人谁用Win32 API写窗体程序啊,Qt跨平台他不香嘛。 所以本文章只是记录一下,我遇到的问题和结果问题的过程思路等,或者有对Win32 API感兴趣的同学,可以参考,学习提出问题一起解决等。 因为只是个笔记,所以教程中可能有些不符合项目代码规范的地方,请谅解。 正文 0x

qq_58286297的博客 3413

【100%通过率】2023华为od机试C卷【电脑病毒感染】Java&Go 实现

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1.

MISAYAONE的博客 2862

【深度学习新浪潮】智能体在图像处理领域的技术突破与实践指南

智能体正在重构图像处理的技术版图:从多智能体分工的"专业化协作",到多模态统一的"极简架构",再到工具增强的"实战能力",技术突破不断降低开发门槛并拓展应用边界。对于开发者而言,2025年的核心机遇在于结合具体场景选择成熟框架(如医疗用IteR-MRL、工业用NVIDIA NIM),通过微调与工具集成快速落地解决方案。随着硬件成本下降与开源生态完善,图像处理智能体将从当前的"高端场景赋能"走向"千行百业普及",真正成为数字世界的"视觉感知与操作核心"。

专注:太空算力、AI infra、异构调度、大模型成本工程 439

error RC2104:undefined keyword or key name:WS_EX_NOINHERITLAYOUT解决方法

如果升级VS工程,发现编辑了*.rc后,出现编译错误,error RC2104:undefined keyword or key name,基本上是由于升级时,把*.rc中的#include 去掉了,加了一个resouce.h。原文链接:https://blog.csdn.net/my_angle2016/article/details/102482372。在*.rc中将#include 加上就可以了。VS2022编译过去Vs2008的时期的文件,一个错误如下。

mingkiller的专栏 1062

我终于停止写 JUnit 了!用 JavaParser + GPT-4 自动生成 90% 覆盖率的单元测试

本文介绍了一种基于JavaParser和GPT-4的智能单元测试生成方案。针对开发者在单元测试编写中面临的繁琐、无聊和硬指标等问题,提出通过AST语法树分析代码结构,提取关键信息后生成精准提示词,再调用GPT-4自动生成高质量的单元测试代码。文章详细阐述了技术原理、实现步骤(包括JavaParser解析、上下文感知提示词构建和GPT-4调用),并展示了该方法能自动识别依赖、Mock对象和覆盖边界条件,显著提升测试效率。同时指出了在复杂数据结构、私有方法测试等方面的局限性,最终强调这种技术组合可以解放开发者,

BUG猿的博客 1131

VS工程升级后错误error RC2104:undefined keyword or key name解决方法

VS工程升级后错误error RC2104:undefined keyword or key name解决方法 问题: VS建立的工程用新版本打开升级后,不能打开资源视图,出现错误提示error RC2104:undefined keyword or key name WS_EX_NOINHERILAYOUT 原因: 如果升级VS工程,发现编辑了*.rc后,出现编译错误,error RC2...

qq_41786318的博客 4874

【入门AUTOSAR网络管理测试】RSS-PBM状态转换

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中RSS-PBM状态转换如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 872

【Arduino 动手做】六舵机自平衡 Rotary Stewart 平台

《Arduino六舵机自平衡Rotary Stewart平台项目》 该项目展示了一个基于Arduino的六自由度Rotary Stewart平台,通过六个舵机实现动态平衡控制。设计采用激光切割框架和TAMIYA 70171套件,提供详细组装指南和开源固件(GitHub可获取)。开发者丹·罗耶分享了3D打印文件、视频演示及运动学优化需求,强调该平台可扩展应用于游戏控制(如Kerbal Space Program)或教育领域。项目链接包含完整资源包,鼓励用户参与改进并分享创作成果。该案例体现了Arduino在机

雕爷学编程 1092

排错:打开资源出现RC2104

问题 在rc文件里使用了自定义宏(而且带条件编译),之后在资源视图中打开资源时报错RC2104,无法找到某个宏 解决 1、搜MSDN上对于RC2104的解决方法,居然要改MFC源码,不靠谱。 2、再搜“打不开资源 RC2104”,获得一点提示:通常这种问题是resource.h里没有相应的宏造成的。把条件编译拷贝到resource.h里,问题依旧 3、试了一下,在resource.h里直...

小白编程 531

黑猫带你学UFS协议第23篇:UFS固件升级操作详解(FFU)

摘要:本文介绍了UFS固件更新(FFU)的实现方法与注意事项。根据UFS3.1 JEDEC协议,FFU通过write buffer命令(MODE=0Eh)下载FW固件,随后必须进行power cycle或硬件复位生效。文章详细阐述了FFU操作的10条规则,包括数据分片传输要求、寄存器访问限制等,同时指出协议未明确的厂商实现差异。关键寄存器包括bFFUTimeout、bDeviceFFUStatus和fPermanentlyDisableFwUpdate。

黑猫奥利奥的博客 1万+

VC MFC 错误 error RC2104,应对

VC MFC 错误 error RC2104

weixin_41885527的博客 640

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

error RC2104 : undefined keyword or key name: Invalid

资源文件编译错误及字符与unicode编码切换

lcfeng1982的专栏 1288

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

解决升级vs工程,打开资源试图提示error RC2104:undefined keyword or key name 问题

升级vs工程,打开资源视图提示error RC2104:undefined keyword or key name (如下图) 基本上是由于升级时,把*.rc中的#include <windows.h>去掉了,加了一个resouce.h,点击编辑代码,在*.rc中将#include <windows.h>加上就可以了。 ...

my_angle2016的博客 1648

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

error RC2104:undefined keyword or key name

编辑了.rc后,出现编译错误,error RC2104:undefined keyword or key name,基本上是由于升级时,把.rc中的#include

zp33 1964

WIN32 error:RC2104:undefined keyword or key name

情况: 今天vc++课实验,显示.rc出现这个问题但是如上相关代码没有问题,而且第23行中文也编译过了。 过程 后来用devc打开.rc,发现此时中文显示为乱码,类似这个样子此时发现部分行中文可以编译,部分不行是因为有些行另一边引号被吞了,如上第一个ltext,这处正好无法编译。 解决 一、我自己是直接在devc里面修改了乱码中文部分保存,再打开vs时,它跳出一个框,点击确定。在运行就可以啦~~~~我这个算不小心撞对的。 二、后来老师有在实验课讲另一个 不要保存为utf格式,保存为ansl ...

QWQzyyy的博客 1284

c++中.rc文件和resource.h的问题

1  .rc文件:是一个资源文件,里面包括了引入的位图文件,窗口,图标,光标等等。2  .rc文件的作用:例如,你的程序要生成一个exe文件,而文件的图标是你自定义的图标。你就要在这个工程里面添加Icon资源,添加一个外部的ico文件,保存到.rc里面,因此可以直接调用图标文件。又例如对于你创建一个MFC的工程,基于对话框的,那么它就会自动生成一个窗口的资源,保存在.rc里面。3  建立.rc的过...

Tian_fourpieces的博客 3万+

Cannot open include file:‘resource.h‘

在Qt项目中拉别人的代码可能有生成不了资源文件的情况,可能人家没有上传SVN,这种情况可以直接进入项目目录,如果有resource.rc的话直接删除。然后进入vs中,右击项目,点击添加->新建项,选择资源,新建resource.rc,再次编译会自动生成resource.h和Filename.aps(这个是资源脚本文件的二进制形式,资源编译器直接访问这个而不是阅读.rc文件,可以了解一下)

ChenQiaNg0923的博客 621

error RC2104:undefined keyword or key name 问题

如果升级VS工程,发现编辑了*.rc后,出现编译错误,error RC2104:undefined keyword or key name,基本上是由于升级时,把*.rc中的#include 去掉了,加了一个resouce.h,在*.rc中将#include 加上就可以了。

jerry_dqh的专栏 1万+

error RC2104:undefined keyword or keyname:SS_REALSIZECONTROL 错误解决

直接点击图片中的“编辑代码”按钮,进入*.rc的编辑文件,加入头文件 头文件加入#include <windows.h> 如果有用,谢谢 请点赞或收藏

Vertira的博客 2276

关于error RC2104:undefined keword or key name

这是因为你的资源文件损坏,一些控件的ID没有定义。或者是当你将其他程序.rc文件中的菜单栏部分内容直接拷贝到你的程序中而没有在resource.h中添加菜单项ID时导致的。在resource.h中添加菜单项中添加相应ID即可。工具栏及其他资源问题与此类似。   更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn  

施昌权专栏 2074

Visual Studio资源编译错误RC2104完全解决指南

摘要:Visual Studio MFC项目中出现RC2104错误,提示"SS_REALSIZECONTROL"未定义。该错误出现在资源脚本文件(AllmageClassifier.rc)第114行,一个静态文本控件的样式定义中。问题可能源于使用了非标准的MFC控件样式,建议检查并替换为标准的静态控件样式(如SS_SIMPLE或SS_LEFT)。解决方案包括更新MFC库版本、移除该样式定义或使用兼容的替代样式。

深耕CV 520

MFC中的Resource.h文件理解

新建一个基于对话框的resource.h文件//{{NO_DEPENDENCIES}} // Microsoft Visual C++ 生成的包含文件。 // 由 TestResouse.rc 使用 // #define IDR_MAINFRAME 128 #define IDM_ABOUTBOX 0x0010 #define

xuanyuanlei1020的专栏 1万+
上一篇: Win10 x64+VS2013编译OpenGL程序用于WinXP系统运行方法——以库GLFW 3.2.1中gears为例
下一篇: C++ STL求全排列和组合
tomwillow
博客等级 码龄20年 54粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值