« 『iPhone』で上部ステータスを消してもタッチ範囲が残っているよ… | トップページ | 『さいたま屋』で博多ラーメン食ったよ♪ »

2010年1月19日 (火)

『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 );

以下の情報を参照すれば、ほぼ目的を達成できると思う。

汎用テキストのプログラム例

Tchar.h における汎用テキストのマッピング

ルーチンのマップ

で、完成~♪

ベクターにもアップしたよ♪

セイムデリート(Unicode版)

問題は、自分の環境がアンジ環境だって事…。

テスト的にユニコードフォルダーを作成してテストしたけど…
実際使ってみないと分からない所がでるかもしれない…。

ってのが不安。

でも、まあ大丈夫だろう♪

と勝手に思っている…。

PS.

何でアンジにこだわるかって?

だって『Windows95』は、ユニコードをサポートしていないんだもん…。(爆)

|

« 『iPhone』で上部ステータスを消してもタッチ範囲が残っているよ… | トップページ | 『さいたま屋』で博多ラーメン食ったよ♪ »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 『SameDelete』を『Unicode』対応にしたい!:

« 『iPhone』で上部ステータスを消してもタッチ範囲が残っているよ… | トップページ | 『さいたま屋』で博多ラーメン食ったよ♪ »