トップページ > プログラム > 2015年12月14日 > reTGASBb

書き込み順位&時間帯一覧

18 位/189 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000021000003



使用した名前一覧書き込んだスレッド一覧
名無しさん@そうだ選挙に行こう
D言語 Part34©2ch.net
Win32API質問箱 Build121 [転載禁止]©2ch.net

書き込みレス一覧

D言語 Part34©2ch.net
353 :名無しさん@そうだ選挙に行こう[sage]:2015/12/14(月) 17:11:34.59 ID:reTGASBb
ここを参考に
http://www.kmonos.net/alang/wnd/topics/winapi.ja.html
Win32API を使って drag & drop を実装してみたところ
case WM_DROPFILES: の中で

HDROP dr = cast(HDROP)wp;
TCHAR[] buf = new TCHAR[MAX_PATH];
int l = DragQueryFile(dr, 0, buf.ptr, buf.length);
if(l < buf.length) buf[l] = 0;
string bs = to!string(buf[0..l]);
version(Unicode){
writefln("0: %s", to!string(bs.toMBSz()));
string name = bs;
}else{
writefln("0: %s", bs);
string name = fromMBSz(bs.toStringz());
}
writefln("1: %s", name);

とすると
drag & drop したファイル名が 「森鷗(環境依存文字2)外��(環境依存文字3)る.ext」 のとき
最後の name の表示が -version=Unicode したときとしないときで結果が違います
toMBSz と fromMBSz とで不可逆なのは判るのですが
MBSz -> UTF8 するときも結果が違うのは何故でしょうか?
(ただし表示は違うのですが同じファイルが対象になってちゃんと動作します)
D言語 Part34©2ch.net
354 :名無しさん@そうだ選挙に行こう[sage]:2015/12/14(月) 17:23:00.56 ID:reTGASBb
文字化けしてるので補足

環境依存しない方の文字はこちらです
森鴎外叱る

2 鷗外

3 ��る

がそれぞれ環境依存文字です
この辺が関係ありそうなのですが fromMBSz のバグなのか何なのかよく判りませんでした
https://msdn.microsoft.com/ja-jp/library/cc419800.aspx
http://download.microsoft.com/download/B/0/9/B09F266D-8D54-4476-A3EC-E974CA5F61F8/BS_303.pdf
Win32API質問箱 Build121 [転載禁止]©2ch.net
838 :名無しさん@そうだ選挙に行こう[sage]:2015/12/14(月) 18:11:14.75 ID:reTGASBb
ユニコードなのに色んなコードがあるのがなんとも


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。