『SameDelete』を『Unicode』対応にしたい!
実は、ベクターに『SameDelete』ってアプリロケーションを登録している。
実際、自分が使用する事を目的に作ったんだけど…
ベクターには、色々お世話になっているので恩返し?
で、登録してみたりした。
実際に使っていて不具合が発覚するたび更新していたりする。(汗)
ちなみにダウンロード回数は、結構低い…。(笑)
そんな中、初めてのコメントが…
キタ―――(゚∀゚)―――― !!
>No.12009-11-02 16:47:44 automatic
>評価:
>評価=4
>評価=4
># コメントタイトル:比較対象ファイル数に制限がないところが素晴らしい
># コメント内容:今までの経験上、ほとんどのファイル比較/削除系ツールは数十万を超えるファイル数を対称にするとエラーを表示して止まってしまいます。
>
>ところがこのソフトはどんなに多いファイル数でも、どんなに深い階層でも止まったことがありません(今のところ)。
>
>あとはUnicodeファイル名に対応してくれたら言うことなしです。
しかも、5段評価中4です。(^○^)/
で、要望が『Unicode』対応。
実は、ユニコードはスルーしていました。
正直『ユニコード、アウトオブ眼中!』って感じ。(笑)
だが、初めての要望なのでユニコード対応版を決意!
最初に混在型が出来ないかと思ったが…
文字コード混在は、流石に無理!
と言う事でユニコード対応版でなくユニコード版を作る事にした。
この場合、『ANSI(S-JIS)』には、非対応になるが仕方ない…。
じゃあどうしたらユニコード版に?
て、調べてみたら…
マイクロソフトは、ユニコードへの移行にかなり力を入れていたのが分かった。
と言うのも比較的簡単にユニコードへ移行できる仕組みを作ってあるのだ。
その仕組みを見付けるまでが大変だったけど、
仕組みが分かると拍子抜けするほど簡単。
大体、こんな感じ。
『ANSI』だと…
char string = "sample ansi";
int length = strlen( string )
int size = length + 1;
LPSTR buffer = ( LPSTR )malloc( size );
『Unicode』だと…
TCHAR string = L"sample unicode";
int length = _tcsclen( string )
int size = ( length + 1 ) * sizeof( TCHAR );
LPSTR buffer = ( LPSTR )malloc( size );
以下の情報を参照すれば、ほぼ目的を達成できると思う。
で、完成~♪
ベクターにもアップしたよ♪
問題は、自分の環境がアンジ環境だって事…。
テスト的にユニコードフォルダーを作成してテストしたけど…
実際使ってみないと分からない所がでるかもしれない…。
ってのが不安。
でも、まあ大丈夫だろう♪
と勝手に思っている…。
PS.
何でアンジにこだわるかって?
だって『Windows95』は、ユニコードをサポートしていないんだもん…。(爆)
| 固定リンク
コメント