掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VARIANT型(BSTR)のデータを表示するには? (ID:63100)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>setlocale( LC_ALL, "Japanese" ); で確認できました。(VC6/Excel 2003 VBA(VB6環境が手元にないため)) ちなみに SafeArrayGetElement を使えばもう少しシンプルにかけます。 (C++でもいいならcomdef.hの_bstr_tが便利なんですけどね) 一応試したコード) void WINAPI Sample( VARIANT* v ) { SAFEARRAY* psa; BSTR wcs; long i, lb, ub; static char mbs[ 256 ]; if ( v->vt != ( VT_ARRAY | VT_BSTR | VT_BYREF ) ) return; psa = *( v->pparray ); if ( psa->cDims != 1 ) return; SafeArrayLock( psa ); SafeArrayGetLBound( psa, 1u, &lb ); SafeArrayGetUBound( psa, 1u, &ub ); setlocale( LC_ALL, "Japanese" ); for ( i = lb; i <= ub; i++ ) { SafeArrayGetElement( psa, &i, ( void* )&wcs ); wcstombs( mbs, wcs, 256 ); MessageBox( NULL, mbs, NULL, MB_OK ); // MessageBoxW( NULL, wcs, NULL, MB_OK ); } SafeArrayUnlock( psa ); } それと、VB側でEXEを作ってしまえば、DLLのデバッグをすることが出来ます。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.