//******************************************************************* STDMETHODIMP CMyclass::MyFunction(BSTR vbsString, BOOL *pVal) { USES_CONVERSION; LPTSTR szString = OLE2T(vbsString); //*******************************************************************
1) LPTSTR に必要な長さを求める LPCWSTR _lpw = vbsString; int _convert = 0; _convert = (lstrlenW(_lpw)+1)*2; 2) スタックにメモリを割り付ける LPTSTR szString = _alloca(_convert); 3) 変換関数を呼び出す AtlW2AHelper((LPSTR)szString, _lpw, _convert);
LPTSTR szString = _alloca(_convert); を LPTSTR szString = new char[_convert]; とすれば良いでしょう。