读书人

有没有人知道这个如何宏定义

发布时间: 2013-09-28 10:01:20 作者: rapoo

有没有人知道这个怎么宏定义
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 这个有点难,有没有知道的人? 宏 string 宏定义 字符串 引号
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

用宏要干什么,说明白点
就是我想用语句:
TO_TABLE_STRING(SRV_CHKOUT_ODR_DOWN);
来表示:sql.Format(_T("COPY (select * from \"SRV_CHKOUT_ODR_DOWN\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName);
这样的语句,有办法实现吗


// 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)

这样不行么?难道还有别的要求什么的?


对了你的那个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)
额 那个宏在引号里面啊 你怎么能这么定义


你的意思你后面的语句里 已经有一个宏了? 宏貌似不可以嵌套的
你题目没有,我也没仔细看。。


#ifdef
#define
#endif
[解决办法]
难者不会,会者不难:
#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

[解决办法]
#define TO_TABLE_STRING(q) sql.Format(_T("COPY (select * from \"")_T(#q)_T("\") TO '%s' BINARY"), (LPTSTR)(LPCTSTR)strFileName)

即可

[解决办法]
#define TO_TABLE_STRING(s)
sql.Format(_T("COPY (select * from \"%s\") TO '%s' BINARY"), \
_T(#s), (LPTSTR)(LPCTSTR)strFileName)

试试这样行不

读书人网 >C++

热点推荐