2012-08-15 46 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 ; 
}