替换列表宏函数 [问题]

Replacement-List Macro Function [Question]

替换列表宏函数


我正在尝试创建一个快速宏,它将允许我简单地获取一个 class 指针并根据 class 指针名称命名设置模块,如下所示:

#define dll_import(...) dll_module->__VA_ARGS__= \
GetModuleHandleW(L#__VA_ARGS__.dll)  // Note: This is where I'm confused.

当我尝试这样做时,它显然不会起作用,因为我不能将 ".dll" 添加到参数中,因为它在字符串的参数包含之外:

只是我参考资料中的一个视觉示例,以提供帮助。忽略表达式捕获错误。

目前我只是想看看是否有人知道解决这个问题的方法,感谢所有帮助。

您似乎只是想简单地将字符串连接在一起。如果是这种情况,解决方案应该只是确保 .dll 部分也是字符串文字:

#define dll_import(...) dll_module->__VA_ARGS__= \
    GetModuleHandleW(L#__VA_ARGS__ L".dll")

这会将 dll_import(verified_module) 的输入转换为:

dll_module->verified_module = GetModuleHandleW(L"verified_module" L".dll")

哪个 C++ 将视为两个后续字符串文字并将其连接在一起,L"verified_module.dll"