为什么我的对话框创建失败了?菜鸟错误1

对话框中的资源要么被定义为一个整数,要么被定义为一个字符串。

仅仅一个简单的错误将会将其中的一个类型错误的变成另一个类型。我们来看一个例子。

>> 请移步至 www.topomel.com 以查看图片 <<

你是否能发现其中的两处 “菜鸟级错误” ?

如果先获取资源文件并发送给预处理器,可能会更容易发现这个问题。

>> 请移步至 www.topomel.com 以查看图片 <<

对 DialogBox 的第一次调用将 TEXT(“DLG_OPEN”) 作为资源名称传递。但请注意,没有具有该名称的资源。由于头文件中的第 #define DLG_OPEN 1 行,预处理器将 DLG_OPEN 变为 1。因此,对 DialogBox 的调用失败,因为没有名为 DLG_OPEN 的对话框。所需的对话框采用整数名称 1。

DialogBox(hInstance, MAKEINTRESOURCE(DLG_OPEN), hwnd, OpenDialogProc);

第二个错误更微妙。请注意,第二个对话框的名称拼写不一致。头文件称其为 DLG_WARN_REMOVEABLE,但资源文件称其为 DLG_WARN_REMOVABLE。因此,不会调用预处理器宏,结果是字符串名称为 TEXT(“DLG_WARN_REMOVABLE”) 的对话框。但是,代码会请求 MAKEINTRESOURCE(DLG_WARN_REMOVEABLE),该资源不存在。

要解决第二个问题,您首先必须确定您真正想要什么。您可能需要一个整数对话框资源,在这种情况下,解决方法是更正资源文件:

DLG_WARN_REMOVEABLE DIALOG 32, 32, 267, 73

另一方面,如果你真的希望对话框是一个命名资源(注意:这是非常罕见的),那么你需要按名称请求它:

DialogBox(hInstance, TEXT(“DLG_WARN_REMOVABLE”), hwnd, WarnRemoveableDialogProc);

在接下来的几天里,我们将再看看一些 “菜鸟错误”。

总结

请谨慎修改工程的资源定义文件(.rc文件),最好还是交给开发环境来自动维护。
机器在这方面(“老老实实的工作”)比人强。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why can’t I create my dialog box? Rookie mistake #1》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/232143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch:生成 AI 中的微调与 RAG

在自然语言处理 (NLP) 领域&#xff0c;出现了两种卓越的技术&#xff0c;每种技术都有其独特的功能&#xff1a;微调大型语言模型 (LLM) 和 RAG&#xff08;检索增强生成&#xff09;。 这些方法极大地影响了我们利用语言模型的方式&#xff0c;使它们更加通用和有效。 在本文…

Linux系统管理、服务器设置、安全、云数据中心

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 我们来快速了解liunx命令 文章目录 前言解析命令提示符linux的文件和目录文件和目录管理文件操作 进程管理命令系统管理网络管理 书籍推荐 本文以服务器最常用的CentOS为例 解析命令提示…

SM4系列

简述 SM4也是一个对称分组加密密钥长度&#xff1a;16bytes分组长度 密钥长度明文长度 密文长度 python自带库安装 pip install gmssl SM4加密 from gmssl import sm4key b"UKFCUKFCUKFCUKFC" strData bRe__Pointenc sm4.CryptSM4() enc.set_key(key, sm4.S…

2024年完整湖北等保测评机构名单看这里!

等保测评机构是指经公安部认证的具有资质的测评机构&#xff0c;主要从事等级测评活动。一般过等保需要找正规具有资质的等保测评机构。那你知道2024年湖北等保测评机构有哪些&#xff1f;名单有吗&#xff1f; 2024年完整湖北等保测评机构名单看这里&#xff01; 1、湖北星…

接口测试【断言设置思路】实操

1 断言设置思路 这里总结了我在项目中常用的5种断言方式&#xff0c;基本可能满足90%以上的断言场景&#xff0c;具体参见如下脑图&#xff1a; 在这里插入图片描述 下面分别解释一下图中的五种思路&#xff1a; 1&#xff09; 响应码 对于http类接口&#xff0c;有时开发人…

无损编码——Slepian-Wolf理论

在信息论中&#xff0c;无损编码是一种重要的编码技术&#xff0c;其目的是通过尽量少的比特数来表示一段信息&#xff0c;同时保证信息的完整性和准确性。传统的无损编码方法往往只考虑单个源的编码问题&#xff0c;比如哈夫曼编码和算术编码等。然而&#xff0c;在实际应用中…

RTK、PPP与RTK-PPP?一文带您认识高精定位及如何进行高精定位GNSS测试!(一)

来源&#xff1a;德思特测试测量 德思特干货丨RTK、PPP与RTK-PPP&#xff1f;一文带您认识高精定位及如何进行高精定位GNSS测试&#xff01;&#xff08;一&#xff09; 原文链接&#xff1a;https://mp.weixin.qq.com/s/6Jb3DuJEhRGqFPrH3CX8xQ 欢迎关注虹科&#xff0c;为您…

#HarmonyOS:项目结构图

.hvigor&#xff1a;存储构建配置文件信息 .idea&#xff1a;存储项目的配置信息 AppScope&#xff1a;全局的共有资源存放目录

uniapp数据缓存(存储/获取/移除/清空)

1.存储&#xff1a; 异步&#xff1a;uni.setStorage(OBJECT) uni.setStorage({key: storage_key,data: hello,success: function () {console.log(success);} });同步&#xff1a;uni.setStorageSync(KEY,DATA) try {uni.setStorageSync(storage_key, hello); } catch (e) …

大模型评估中Pass@k值是如何计算的

在前面的博客中分别介绍了大模型评估过程不同指标的含义&#xff0c;以及如何通过代码&#xff0c;实现指标的收集。如果对如何运行代码生成结果和收集passk指标不清楚&#xff0c;可以参考这两篇博客。 如何对大模型进行评估上 如何对大模型进行评估下 Passk的来源 代码的生…

day34算法训练|贪心算法

1005.K次取反后最大化的数组和 两次贪心算法思路 1. 数组中有负数时&#xff0c;把绝对值最大的负数取反 2. 数组全为非负数时&#xff0c;一直取反最小的那个数 步骤&#xff1a; 第一步&#xff1a;将数组按照绝对值大小从大到小排序&#xff0c;注意要按照绝对值的大小…

基于YOLOv8深度学习的智能小麦害虫检测识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

VMware下安装win7

参考&#xff1a; VMware下安装win7教程_vm安装win7-CSDN博客 ps:我使用的就是上面这位博主的第一个镜像。 【虚拟机安装Win7】5分钟带你学会通过VMware虚拟机安装Windows 7&#xff0c;特别是各省份专升本考试需要考查Windows 7计算机系统的宝子_哔哩哔哩_bilibili

CAS的详细介绍

CAS&#xff08;Compare and Swap&#xff09;是一种并发算法&#xff0c;通常用于解决多线程环境下的数据竞争问题。CAS的基本思想是通过在操作变量时&#xff0c;先比较当前值和期望值是否相等&#xff0c;如果相等则更新为新的值&#xff0c;否则不进行任何操作。 CAS操作包…

脚本执行权限——chmod +x、chmod -x

linux系统下&#xff0c;不同类型的文件用不同颜色表示&#xff1a; 蓝色表示目录; 绿色表示可执行文件&#xff0c;可执行的程序; 红色表示压缩文件或包文件; 浅蓝色表示链接文件; 灰色表示其它文件; 红色闪烁表示链接的文件有问题了 黄色表示设备文件 当执行chmod x test.sh…

Springboot参数校验复制即用

引入依赖 <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>2.0.1.Final</version> </dependency> <dependency><groupId>org.hibernate.validator</groupI…

JavaSE 排序

目录 1 概念1.1 排序1.2 稳定性 2 常见基于比较排序算法总览3 插入排序3.1 直接插入排序3.1.1 思想3.1.2 实现3.1.3 性能分析 3.2 折半插入排序3.2.1 思想3.2.2 实现3.2.3 性能分析 3.3 希尔排序3.3.1 思想3.3.2 实现3.3.3 性能分析 4 选择排序4.1 选择排序4.1.1 思想4.1.2 实现…

神奇的数据恢复算法

今天码哥给大家带来一种数据备份与修复的技术——里德所罗门编码。 里德所罗门编码可是应用场景很多&#xff0c;例如我们耳熟能详的RAID&#xff08;磁盘阵列&#xff09;&#xff0c;又例如在UDP传输中降低丢包导致的数据缺失的情况等等。 什么是里德所罗门编码 这里&…

官网 Navicat Premium 历史版本官方下载地址

Navicat Premium 客户端命名规则&#xff0c;是 navicat大版本(2位)小版本(1位)_premium_cs_x32或者64位的系统.exe&#xff0c;比如&#xff1a; https://download.navicat.com/download/navicat162_premium_cs_x64.exe 表示大版本为16&#xff0c;小版本为2&#xff0c;64位系…

随时随地刷题题库小程序源码系统+完整代码包+安装部署教程

互联网的普及和在线教育的发展&#xff0c;越来越多的人开始利用碎片时间进行学习。为了满足这一需求&#xff0c;随时随地刷题题库小程序应运而生。该小程序提供了一个便捷的刷题平台&#xff0c;用户可以在任何时间、任何地点进行刷题练习&#xff0c;提高自己的学习效率。 …