小编Ran*_*dy 的帖子

任何测试扩展C/C++ #define宏的实用程序?

看起来我经常花太多时间试图让#define宏完全按照我的意愿去做.我将在下面发布我目前的困境,任何帮助表示赞赏.但真正更大的问题是,是否有人可以推荐的任何实用程序,以快速显示宏实际上在做什么?如果我看到错误的话,即使是缓慢的试错过程似乎会更快.

目前,我正在从我制作的DLL动态加载一长串函数.我设置的方式,函数指针与导出的函数具有相同的nanes,并且用于原型化的typedef具有相同的名称,但具有前置下划线.所以我想使用一个define来简化长长的函数指针列表的赋值.

例如,在下面的代码语句中,'hexdump'是typedef'd函数点的名称,也是函数的名称,而_hexdump是typedef的名称.如果GetProcAddress()失败,则递增失败计数器.

if (!(hexdump = (_hexdump)GetProcAddress(h, "hexdump"))) --iFail;
Run Code Online (Sandbox Code Playgroud)

所以,假设我想用宏来替换上面的每一行,就像这样......

GETADDR_FOR(hexdump )
Run Code Online (Sandbox Code Playgroud)

那么这是迄今为止我提出的最好的.它不起作用(我的//注释只是为了防止消息中的文本格式化)...

// #define GETADDR_FOR(a) if (!(a = (#_#a)GetProcAddress(h, "/""#a"/""))) --iFail; 
Run Code Online (Sandbox Code Playgroud)

而且,虽然我很了解我已经犯下了什么愚蠢的错误,但是通过简单地插入我的宏,这将使我的日子能够显示出我的方式错误.

c++ macros c-preprocessor

34
推荐指数
4
解决办法
2万
查看次数

标签 统计

c++ ×1

c-preprocessor ×1

macros ×1