连接资源中的定义和字符串

2023-12-04

我有一个资源文件,需要在需要时使用连接宏和字符串创建字符串定义,如下所示

#define _STRINGIZE(n) #n
#define STRINGIZE(n) _STRINGIZE(n)
#define Word_ Word
100 DIALOGEX 0, 0, 172, 118
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Hello"STRINGIZE(Word_)=>"Hello"Word" 

但需要简单的“Hello World”,没有平均报价。


对于任何关心的人:.rc 文件是来自 MFC 项目的资源文件,它定义 UI 元素,例如对话框布局。它使用与 C++ 相同的预处理器,但它不共享 C++ 的语法——并且在窗口 CAPTION 字段中,两个字符串文字不会通过并置来连接。在字符串文字中,两个双引号实际上是生成一个双引号字符的转义序列。所以字面意思是:

"Hello""World"

最终看起来像

Hello"World

在对话框窗口的标题中。

给出的例子的问题:

CAPTION "Hello"STRINGIZE(Word_)

是必须删除“Hello”末尾的双引号,但预处理器无法做到这一点。 但是,如果允许在宏中包含“Hello”,则可以进行串联。首先,我定义了这些宏:

#define CONCAT(a,b) a##b
#define STRINGIZE_(x) #x
#define STRINGIZE(x) STRINGIZE_(x)

然后,在对话框中记录:

  ...
EXSTYLE WS_EX_APPWINDOW
CAPTION STRINGIZE(CONCAT(Hello,World))
FONT 10, "Segoe UI Semibold", 600, 0, 0x0
  ...

这样,对话框的标题最终看起来像你好世界-- 没有杂乱的引号或任何东西。 我希望你能使用这个技巧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接资源中的定义和字符串 的相关文章

  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • 在 C# 中创建具有单独列的分隔文本

    我一直在尝试在 C 中创建一个制表符限制的文本文件 以便数据正确显示在单独的列中 Firstname Lastname Age John Smith 17 James Sawyer 31 我尝试过 t 字符 但我得到的只是 Firstnam
  • 如何使用MemoryCache代替Timer来触发一个方法?

    以下方法通过等待已运行操作的结果来处理并发请求 对数据的请求可能会使用相同 不同的凭据同时出现 对于每组唯一的凭据 最多可以有一个GetCurrentInternal呼叫正在进行中 当准备就绪时 该呼叫的结果将返回给所有排队的服务员 pri
  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • XAML:如何定义要在多个项目中使用的数据模板和样式

    我开始使用 WPF net 3 5 sp1 仅使用 VS 尚未混合 开发桌面应用程序 我现在的情况是 我在几个库中有一些通用的可重用组件 我可以在哪里定义样式和数据模板 以便它们可以在多个项目中重复使用 从而获得一致的外观和感觉 我看过 R
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • C# Dns.GetHostEntry 不返回连接到 WiFi 的移动设备的名称

    我有一个 C 中的 Windows 窗体应用程序 我试图获取列表中所有客户端的主机名 下面给出的是 ra00l 来自此链接的代码示例 GetHostEntry 非常慢 https stackoverflow com questions 99
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke

随机推荐

  • Discord.py 如何添加静音命令

    我正在制作一个不和谐的机器人 我真的想制作一个静音命令来使有毒用户静音 这是我目前的代码done 这不是重写版本 bot command pass context True async def mute ctx user id userNa
  • Android onSearchRequested() 回调调用活动

    我有一个 MapActivity 当按下搜索按钮时 它将显示 Android 搜索框 SearchManager 管理该对话框 并将用户的查询传递给可搜索活动 该活动搜索 SQLite DB 并使用自定义适配器显示结果 这工作正常 我从显示
  • Ajax Accordion 失去当前窗格

    我正在使用带有多个窗格的 Ajax Accordion 在回发时 当前打开的窗格始终重置回第一个窗格 有什么办法可以解决这个问题吗 Thanks Rob 我通过在查询字符串中传递当前窗格索引 然后将当前窗格设置回目标页面的 Page Loa
  • 实体框架 v6 GroupBy 丢失原始排序

    我有一个查询的以下部分 这是一个更大的查询的结尾 queryBuilder 是一个 IQueryable var results queryBuilder OrderBy x gt x Vehicle RangeId ThenBy x gt
  • arraylist 的副本不断被修改为原始值

    我正在开发一个用于保存和调用屏幕状态的系统 这是我第一次搞乱这种东西 所以我不太确定最好的方法是什么 但我目前存储了所有的 PreviewMonitor 数组列表内的对象 大约 40 个左右 问题是 当我创建一个名为 allPreviewM
  • String.Replace() 与 StringBuilder.Replace()

    我有一个字符串 需要用字典中的值替换标记 它必须尽可能高效 使用 string replace 进行循环只会消耗内存 记住 字符串是不可变的 StringBuilder Replace 是为了处理字符串操作而设计的吗 我希望避免 RegEx
  • 在 iPhone 上打开热点导致我的应用程序的屏幕向下移动

    当我在 iPhone 中打开人员热点时 我的应用程序的屏幕会向下移动 我正在其中加载子视图 但在其他屏幕上它不会发生 它仅发生在我正在加载子视图的屏幕上 那么有人能告诉我可能是什么问题吗 任何帮助将不胜感激 每当出现热点或其他通知时 sta
  • 如何使用 Java 查找 HTML 中的 URL

    我有以下问题 我不会说问题 而是情况 我有一些带有标签和所有内容的 HTML 我想在 HTML 中搜索每个 URL 我现在通过检查 h t t p 的位置来做到这一点 但我认为这不是一个很好的解决方案 有什么好主意吗 补充 我正在寻找某种伪
  • List 的 Xamarin 列表视图

    我正在制作一个移动应用程序 并尝试在列表视图中加载列表 该列表有多个元素和一个列表 public static List
  • 当应用程序在 macOS 上关闭时,在 @EnvironmentObject 上迭代数组

    我有一个 EnvironmentObject它为我的主视图提供了一个数组 其声明如下 my app swift main struct My AppApp App var body some Scene WindowGroup Conten
  • 故事板身份检查器中未显示自定义类

    我在我的应用程序中创建了一个名为的新类EmpresasTableViewController 并在故事板中我复制了CategoriasViewController到 EmpresasTableViewController 我只想分配该类Em
  • ADFS 的 SSO 的 SAML 错误 - MSIS0038:SAML 消息签名错误

    您好 我正在尝试使用 SSO 直接对我的网站的客户用户进行身份验证 我客户的 IDP 是 Microsoft ADFS 我正在使用 Passport SAML https github com bergie passport saml 配置
  • 看不见的向量?组合 d3.tile()、d3.zoom() 和 TopoJSON 向量

    我已经使用栅格制作了有效的 D3 地图 d3 tile和地图库 和矢量 SVG 形状中的 TopoJSON 但当我将它们组合起来时 我遇到了一个错误 我遵循了 Mike Bostock 的光栅和矢量示例 尤其是他的 光栅与矢量 III 它会
  • 安装 mongodb 版本 >3 树莓派 2

    是否可以在树莓派上安装大于 3 2 的 mongodb 版本 并在树莓派上安装 RASPBIAN JESSIE LITE 我使用本教程只成功获得了 2 1 版本 http www widriksson com install mongodb
  • Android HttpClient 通过 USB 向主机发送请求

    我有一个在通过 USB 连接到主机的手机上运行的 Android 应用程序 手机将始终连接到机器 我需要向机器发出 HTTP 请求 在模拟器中工作 我可以使用 IP 地址 10 0 2 2 访问计算机上运行的网络服务器 并且工作正常 但是在
  • 为什么 Perl 正则表达式 \K 不排除 \K 之前匹配的模式?

    我有一个名为 test txt 的文件 其中包含以下内容 gt Last login Mon Jul 13 05 09 33 2020 You have mail gt gt cat you have just logged into ma
  • EditText 脱离 GridLayout

    我正在尝试创建一个带有 EditText 和关联标签的视图 我将它们放在 GridLayout 中 EditText 位于最后一列 文本似乎超出了屏幕
  • 安全警告:“请像对待密码一样对待上面的 URL,并且不要与任何人共享。在 ios 中

    我正在开发包含 Facebook 登录的应用程序 使用 Facebook 登录后 我需要转到本机应用程序 应用程序应该显示 Facebook 中的用户名和图像 但是当我使用 Facebook 登录时 它显示 安全警告 请像对待密码一样对待上
  • 如何为 Android 中的应用程序制作自己的键盘?

    我目前正在开发一个需要不同语言 特别是希伯来语 键盘的应用程序 问题是我不知道从哪里开始 我不希望用户必须进入应用程序商店并安装一个包含更多语言的单独应用程序才能使用我的应用程序 我只希望键盘在我的应用程序中可用 即它不应该影响我的特定应用
  • 连接资源中的定义和字符串

    我有一个资源文件 需要在需要时使用连接宏和字符串创建字符串定义 如下所示 define STRINGIZE n n define STRINGIZE n STRINGIZE n define Word Word 100 DIALOGEX 0