有没有人知道这个怎么宏定义

云满笔记 2013-09-24 06:44:05
sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName);

我想将SRV_CHKOUT_ODR_DOWN作为参数传入,即TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN)

这个TO_TABLE_STRING应该如何#define 这个有点难,有没有知道的人?
...全文
143 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
云满笔记 2013-09-27
  • 打赏
  • 举报
回复
OK 解决了 3K
lm_whales 2013-09-25
  • 打赏
  • 举报
回复
#define TO_TABLE_STRING(s) sql.Format(_T("COPY (select * from \"%s\") TO '%s' BINARY"), \ _T(#s), (LPTSTR)(LPCTSTR)strFileName) 试试这样行不
赵4老师 2013-09-25
  • 打赏
  • 举报
回复
#define TO_TABLE_STRING(q) sql.Format(_T("COPY (select * from \"")_T(#q)_T("\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
即可
赵4老师 2013-09-25
  • 打赏
  • 举报
回复
难者不会,会者不难:
#include <tchar.h>
#include <stdio.h>
//#define TO_TABLE_STRINGq(q) sql.Format(_T("COPY (select * from \"")_T(#q)_T("\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
  #define TO_TABLE_STRINGq(q)            _T("COPY (select * from \"")_T(#q)_T("\") TO '%s' BINARY")
  #define TO_TABLE_STRING(q) TO_TABLE_STRINGq(q)
int main() {
    _tprintf(_T("%s"),TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN));
    return 0;
}
//COPY (select * from "SRV_CHKOUT_ODR_DOWN") TO '%s' BINARY
云满笔记 2013-09-24
  • 打赏
  • 举报
回复
引用 8 楼 max_min_ 的回复:
[quote=引用 6 楼 wan212000 的回复:] [quote=引用 5 楼 max_min_ 的回复:] [quote=引用 4 楼 max_min_ 的回复:] [quote=引用 3 楼 wan212000 的回复:] [quote=引用 2 楼 max_min_ 的回复:] 用宏要干什么,说明白点
就是我想用语句: TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN); 来表示:sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName); 这样的语句,有办法实现吗[/quote]

// SRV_CHKOUT_ODR_DOWN 可以换成你一个变量表示
#define TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN)  \
    sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
这样不行么?难道还有别的要求什么的?[/quote] 对了你的那个strFileName 没看清楚, 得从前面参数传进来

#define TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN, strFileName)  \
    sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
[/quote]额 那个宏在引号里面啊 你怎么能这么定义 [/quote] 你的意思你后面的语句里 已经有一个宏了? 宏貌似不可以嵌套的 你题目没有,我也没仔细看。。 用 #ifdef #define #endif[/quote]不是你说的那样 我问的是可否对此进行宏定义,传入参数SRV_CHKOUT_ODR_DOWN,这个SRV_CHKOUT_ODR_DOWN在里面是可以被替换的,无论几个宏定义嵌套都可以
max_min_ 2013-09-24
  • 打赏
  • 举报
回复
引用 6 楼 wan212000 的回复:
[quote=引用 5 楼 max_min_ 的回复:] [quote=引用 4 楼 max_min_ 的回复:] [quote=引用 3 楼 wan212000 的回复:] [quote=引用 2 楼 max_min_ 的回复:] 用宏要干什么,说明白点
就是我想用语句: TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN); 来表示:sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName); 这样的语句,有办法实现吗[/quote]

// SRV_CHKOUT_ODR_DOWN 可以换成你一个变量表示
#define TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN)  \
    sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
这样不行么?难道还有别的要求什么的?[/quote] 对了你的那个strFileName 没看清楚, 得从前面参数传进来

#define TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN, strFileName)  \
    sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
[/quote]额 那个宏在引号里面啊 你怎么能这么定义 [/quote] 你的意思你后面的语句里 已经有一个宏了? 宏貌似不可以嵌套的 你题目没有,我也没仔细看。。 用 #ifdef #define #endif
云满笔记 2013-09-24
  • 打赏
  • 举报
回复
晕。。。。。
云满笔记 2013-09-24
  • 打赏
  • 举报
回复
引用 5 楼 max_min_ 的回复:
[quote=引用 4 楼 max_min_ 的回复:] [quote=引用 3 楼 wan212000 的回复:] [quote=引用 2 楼 max_min_ 的回复:] 用宏要干什么,说明白点
就是我想用语句: TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN); 来表示:sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName); 这样的语句,有办法实现吗[/quote]

// SRV_CHKOUT_ODR_DOWN 可以换成你一个变量表示
#define TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN)  \
    sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
这样不行么?难道还有别的要求什么的?[/quote] 对了你的那个strFileName 没看清楚, 得从前面参数传进来

#define TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN, strFileName)  \
    sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
[/quote]额 那个宏在引号里面啊 你怎么能这么定义
max_min_ 2013-09-24
  • 打赏
  • 举报
回复
引用 4 楼 max_min_ 的回复:
[quote=引用 3 楼 wan212000 的回复:] [quote=引用 2 楼 max_min_ 的回复:] 用宏要干什么,说明白点
就是我想用语句: TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN); 来表示:sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName); 这样的语句,有办法实现吗[/quote]

// SRV_CHKOUT_ODR_DOWN 可以换成你一个变量表示
#define TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN)  \
    sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
这样不行么?难道还有别的要求什么的?[/quote] 对了你的那个strFileName 没看清楚, 得从前面参数传进来

#define TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN, strFileName)  \
    sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
max_min_ 2013-09-24
  • 打赏
  • 举报
回复
引用 3 楼 wan212000 的回复:
[quote=引用 2 楼 max_min_ 的回复:] 用宏要干什么,说明白点
就是我想用语句: TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN); 来表示:sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName); 这样的语句,有办法实现吗[/quote]

// SRV_CHKOUT_ODR_DOWN 可以换成你一个变量表示
#define TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN)  \
    sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)
这样不行么?难道还有别的要求什么的?
云满笔记 2013-09-24
  • 打赏
  • 举报
回复
引用 2 楼 max_min_ 的回复:
用宏要干什么,说明白点
就是我想用语句: TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN); 来表示:sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName); 这样的语句,有办法实现吗
max_min_ 2013-09-24
  • 打赏
  • 举报
回复
用宏要干什么,说明白点
云满笔记 2013-09-24
  • 打赏
  • 举报
回复
自己顶一个先

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧