GSI

해당 블로그 : http://blog.naver.com/kellio?Redirect=Log&logNo=45119872
감사 ^^


/*******************************
*  BSTR 변수에 스트링 넣기
*******************************/

BSTR  bstrTemp;
wchar_t tchar[] = L"hello world";
bstrTemp = SysAllocString(tchar);
SysFreeString(bstrTemp);
 
 // HRESULT Tempfunc(BSTR bstrArg);
Tempfunc(bstrTemp);


// BSTR의 길이 구하기

SysStringLen(bstrTemp) 함수를 이용한다~

/*****************************
* LPCTSTR to BSTR
*****************************/

LPCTSTR lpStr= _T("hello world");

BSTR bstrStr;
bstrStr = ((CString)lpStr).AllocSysString();

/*****************************
* BSTR to CString
*****************************/

CString bstrToCString(BSTR bstr)
{
   char* pbstr;
   USES_CONVERSION;  //convert를 위한 매크로
   pbstr=OLE2A(bstr);     //bstr을 char로 convert
   return CString(pbstr);
}

/*****************************
* _bstr_t to CComBSTR
*****************************/

_bstr_t bstrStr(_T("This is the test String!"));
CComBSTR bstrComStr;
bstrComStr.AppendBSTR(bstrStr);
ShowBSTR(bstrComStr);

BSTR CStringTobstr(CString str)
{
    return str.AllocSysString();    //CString을 bstr로 convert
}

[bstr-> char*]

BSTR inputdata;
char *pbstr;
pbstr=OLE2A(inputdata);

[char* -> bstr]

TCHAR szTitle[ 512 ];
_bstr_t bstrText = szTitle;
*bstrTitle = bstrText.copy();

/*******************************
* CString to CComVariant
*******************************/

 CComVariant out(str.AllocSysString());  or  CComVariant out(str);

----------- VARIANT 구조체 사용예 ----------

VARIANT vVal;
VariantInit(&vVal); //초기화
vVal.vt = VT_BOOL;
vVal.boolVal = TRUE;

---------- BSTR 사용예 --------------

1) BSTR m_pStr;
m_pStr = L"Hello CodeIn"; // 문자의 개수가 지정되지 않음

2) wchar_t Example[] = L"String";
BSTR m_pStr = SysAllocString(Example); // BSTR 문자열 영역확보

//..

SysFreeString(m_pStr); // BSTR 문자열 영역 해제

Posted by gsi
: