VB中:
Public Function SetTableName(sTABName As String) As Variant
Tablename = sTABName
End FunctionPublic Function SetFieldCount(iCount As Integer) As Variant
FieldCount = iCount
End Function VC中
 VARIANT va;
 va.intVal =3;
 DLAPTR.m_AXTPrint.SetFieldCount(va);+++++断言
 CString cstr=_T("my title");
 va.bstrVal =_com_util::ConvertStringToBSTR(cstr);
 DLAPTR.m_AXTPrint.SetTablename(va);++++断言

解决方案 »

  1.   

    VARIANT  va;  
    VariantInit(&va);
    va.vt=VT_INT;
     va.intVal  =3;  
     DLAPTR.m_AXTPrint.SetFieldCount(va);va.vt=VT_BSTR;CString  cstr=_T("my  title");  
     va.bstrVal  =_com_util::ConvertStringToBSTR(cstr);  
     DLAPTR.m_AXTPrint.SetTablename(va);
      

  2.   

    Public Function SetTableName(ByRef sTABName As String) As Variant
    Tablename = sTABName
    End FunctionPublic Function SetFieldCount(ByVal iCount As Integer) As Variant
    FieldCount = iCount
    End FunctionVC中
     DLAPTR.m_AXTPrint.SetFieldCount(3);
     char tn[128]="xxxxx";
     DLAPTR.m_AXTPrint.SetTablename(tn);
      

  3.   

    谢谢 masterz()   !!!!  MVP果然是MVP