1.建一个对话框工程,写一个Log函数,且看实例
void C可变函数Dlg::Log(LPCTSTR FormatString, ...) { CString str(_T("")); va_list args; //初始化参数,FormatString为参数的前一个参数 va_start(args, FormatString); /*然后应该对ap 进行初始化,让它指向可变参数表里面的第一个参数 ,这是通过 va_start 来实现的,第一个参数是 ap 本身 ,第二个参数是在变参表前面紧挨着的一个变量,即“...”之前的那个参数;*/ //第一种方法:直接使用args str.FormatV(_T("%s, %d, %s, %d"), args); //第二种方法:使用va_arg逐个获取参数 LPCTSTR parm1 = va_arg(args, LPCTSTR); int parm2 = va_arg(args, int); LPCTSTR parm3 = va_arg(args, LPCTSTR); int parm4 = va_arg(args, int); va_end(args); //注意不要忘记调用。 }2函数的调用
void C可变函数Dlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 //OnOK(); CString str(_T("%s,%d,%s, %d")); Log(str, _T("11"), 22, _T("33"), 44); }