C++ 里有没像JAVA或C#里的Object?
可以接受CString或int
如函数void TRACELINE(Object x)
{TRACE(x);
TRACE(_T("\n"));
}最后可以这样调用TRACELINE(_T("sdf"));或TRACELINE(3);用宏来实现也可以
我这样写不知为何错了:
#define TRACEMY(X) TRACE(X);TRACE(_T("\n"));

解决方案 »

  1.   

    不好意思没看清楚,
    TRACE只接受格式字符串,用法与 printf 类似
      

  2.   

    解释型语言的动态类型变量在编译型语言中都需要翻译,Object可以是任何类型,对应C++中的VARIANT,它有专门的操作API。你不就是想打印吗,这样做:void traceline(CComVariant v)
    {
      if (SUCCEEDED(v.ChangeType(VT_BSTR)))
      {
        OutputDebugStringW(v.bstrVal);
        OutputDebugStringW(L"\n");
      }
    }// 使用方法
    char* szInfo = "hello world";
    WCHAR* szwInfo = L"I am unicode string."
    long lNum = 32;
    traceline(szInfo);
    traceline(szwInfo);
    traceline(lNum);