2012-08-15 48 views
2

我怎样才能创建VC格式化字符串++(Visual Studio 2010中)格式的字符串?创建C(MFC)

我可以通过这种方式创建:

CString str; 
str.Format("%d bla %d", 10, 20); 

,但我想是这样的:

CString str = MACRO_OR_FUNCTION("%d bla %d", 10, 20); 

我知道如何实现它,但是我preferer如果它是由MFC实现的使用。

我的问题是:在Isthis MFC或几架LIB宏或功能?如果它在MFC中例如我不会实现我的版本。我宁愿使用它。

+0

为什么?你是否更喜欢这种风格? – Trent 2012-08-15 13:47:42

+0

是的。我需要在我的程序中创建很多格式化的字符串。 – 2012-08-15 13:48:41

+0

写你的'MACRO_OR_FUNCTION'接受相同的参数,'的CString :: Format'并返回一个'CString'。你可以使用'CString :: FormatV'来完成主要工作。还有['的CString :: FormatV'文档】在一个例子(http://msdn.microsoft.com/en-us/library/aa314334%28v=vs.60%29)。 – 2012-08-15 14:35:35

回答

3

你需要声明一个函数。

CString fn_s_Format(LPCTSTR pctszFormat, ...) 
{ 
    CString s ; 

    va_list argList; 
    va_start(argList, pctszFormat); 
    s.FormatV(pctszFormat, argList); 
    va_end(argList); 

    return s ; 
}