変換モジュール作成の第一歩No.21472
cherry-i さん 06/06/14 19:45
 
お世話様です。

「選択範囲を一旦メモリに取り込んでそのまま返す」事すらできません。ご教示頂け
れば幸いです。

extern "C" HGLOBAL _cdecl Func1( HWND hwndHidemaru, WCHAR* pwsz, char* pszPa
ram, int cbParamBuffer ) {
 int cb = wcslen(pwsz) + 1;
 HGLOBAL hmemDest = GlobalAlloc( GMEM_MOVEABLE, cb );
 WCHAR* pwDest = (WCHAR*)GlobalLock( hmemDest );
 pwDest=pwsz;
 GlobalUnlock( hmemDest );
 return hmemDest;
}

[ ]
RE:21472 変換モジュール作成の第一歩No.21476
秀丸担当 さん 06/06/15 10:47
 

>「選択範囲を一旦メモリに取り込んでそのまま返す」事すらできません。ご教示頂け
>れば幸いです。
>
>extern "C" HGLOBAL _cdecl Func1( HWND hwndHidemaru, WCHAR* pwsz, char* pszPa
>ram, int cbParamBuffer ) {
> int cb = wcslen(pwsz) + 1;
> HGLOBAL hmemDest = GlobalAlloc( GMEM_MOVEABLE, cb );
> WCHAR* pwDest = (WCHAR*)GlobalLock( hmemDest );
> pwDest=pwsz;
> GlobalUnlock( hmemDest );
> return hmemDest;
>}

とりあえずこのソースだけを見た限りでは、以下のことが言えると思います。

・int cb = (wcslen(pwsz) + 1) * 2; でないとUnicodeのバイト数にならない。

・pwDest=pwsz; はポインタなので、wcscpy( pwDest, pwsz ); じゃないといけ
ない。

[ ]
RE:21476 変換モジュール作成の第一歩No.21479
cherry-i さん 06/06/15 19:11
 
お世話になります。

御指摘通りに行いましたら動作いたしました。
お忙しいところ、ありがとうございました。

[ ]