VARIANT vt;
vt.vt=VT_BSTR;
CString str=vt.pcVal;
vt.vt=VT_BSTR;
CString str=vt.pcVal;
解决方案 »
- 机男离职,我也帮他散个分!
- 请熟悉VC+MySQL的帮忙看看,如何递归调用mysql_use_result,mysql_free_result对?
- C++ Primer Plus 第五版书第383页上的一个简单问题,麻烦会的朋友帮看看。
- microsoft office spreadsheet的使用问题
- 关于<<c++编程思想>>的源码和答案
- 怎么把文本框里面输入进来的字符串转换为字节数组啊?急!!!!
- 如何让数据常驻内存?
- help!如何在list control中选中item?急,谢谢
- 我有联众中国象棋超级版
- 请问在ACCESS中该sql语句怎么写
- 程序错在哪儿?怎么改正??(A NewBie Questiong...)
- 可用分490,为什么提问只能给27分?
inline int _UnicodeToANSI(LPCWSTR lpWStr,LPSTR lpszStr)
{
int iWStrLen;
iWStrLen=::WideCharToMultiByte(CP_ACP,0,lpWStr,-1,lpszStr,0,NULL,NULL);
if(lpszStr==NULL)
return iWStrLen;
return ::WideCharToMultiByte(CP_ACP,0,lpWStr,-1,lpszStr,iWStrLen,NULL,NULL);
}//接口方法
STDMETHODIMP CBATest1::AddStr(VARIANT vStr)
{
// TODO: Add your implementation code here BSTR strData;
long alIndex[2]={0,0};
::SafeArrayGetElement(vStr.parray,alIndex,&strData);
char szTest[256];
_UnicodeToANSI(LPCWSTR(strData),szTest);
::MessageBox(NULL,szTest,"Msg",MB_OK);
return S_OK;
}VB调用代码Dim aStr(1, 9) As String
aStr(0, 0) = "ok"
Dim obj As New BATESTLib.BATest1
obj.AddStr (aStr)