写控件添加了方法 发现参数不对,如何删除重新创建呢?BSTR FAR* 不是字符指针吗?

解决方案 »

  1.   

    BSTR一般是在COM里面用的。没有用到COM的地方别乱用。
    LPCSTR
    CString
    string
    wstring
    char
    wchar_t
    TCHAR
    自己选一个。
      

  2.   

      控件下  如何传结构体呀?  short CTisSelfServiceCtrl::Query(const VARIANT FAR& BankOut) 
    cannot convert parameter 1 from 'const struct tagVARIANT' to 'struct umsstr_out *'
      

  3.   


    第一次接触这方面,没看到什么资料  能否详细点  谢谢了我现在是在进行封装,别人提供了一个动态库 动态库的接口里面是一个结构体,我希望我的控件直接输入一个结构体 int __stdcall UMS_Query_Dll(umsstr_out *bank_out)  这是对方的接口 我想控件传入后  直接 UMS_Query_Dll(传进来的)
      

  4.   

    如果是DLL 的话 ,那就修改不了了。。那就只能传递umsstr_out结构体了!!
      

  5.   


    short CTisSelfServiceCtrl::Query(const VARIANT FAR& BankOut) 
    {
    int iRet;
    umsstr_out* bank;
    iRet=UMS_Query_Dll(bank);
    return 0;
    }
      如何把bank的值给BankOut呢?  这么做可以实现吗?
      

  6.   

    umsstr_out* bank = (umsstr_out*)BankOut;
      

  7.   

     不行
    error C2440: 'type cast' : cannot convert from 'const struct tagVARIANT' to 'struct umsstr_out *'
      

  8.   

    umsstr_out* bank = (umsstr_out*)&BankOut; 
      

  9.   

    还是不行  您看下我这么做可以吗?short CTisSelfServiceCtrl::Query(const VARIANT FAR& BankOut) 
    {
    int iRet;
    umsstr_out bank_out;
    HRESULT hr;
    iRet=UMS_Query_Dll(&bank_out);
    if(iRet==0)
    {
    hr = SafeArrayAccessData(BankOut.parray, (void**)bank_out.amount);
    hr =SafeArrayAccessData(BankOut.parray,(void**)bank_out.bank_code);
    hr =SafeArrayAccessData(BankOut.parray,(void**)bank_out.batch);
    hr =SafeArrayAccessData(BankOut.parray,(void**)bank_out.card_no);
    }
    return iRet;
    }能否通过JS或者VBSCRIPT  取到我要的值