C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■84062 / )  Re[3]: 作業用フォルダについてご相談
□投稿者/ とっちゃん (436回)-(2017/05/12(Fri) 12:33:44)
No84054 (ザイーガ さん) に返信
> 1.文字セットを「Unicode文字セットを使用する」に変更する
> 2.必要に応じて文字列変数の部分を修正する
>  (場合によっては文字列の数の数倍から数百倍は修正箇所が出る恐れあり)
>
必要に応じてですが、対象はUNICODE化する文字列すべてです。
ただし、書き換えの必要があるかどうかはソースコードの内容によるので
作業量的なものがどの程度になるかはわかりません。

あとは、リテラル以外の文字列は文字コード変換処理で対応する必要もあります。
この部分はさらにはまるかな。。。



さて、ちょっとだけ深刻なお話。

パス名に全角文字(これの定義もまぁあれだがw)があると、うまくいかないのが本当に文字コードに起因する問題だとしたら
そのプログラムは、ANSIであること以前に、Shift-JIS以外の文字コード体系がこの世に存在しないと思って作られているもしくは
文字なんて127個よりもはるかに少ないだろ?と思っている人が作った可能性もあります。

もしそうだとすると、スイッチ変えて、文字列を _T でくくって程度では変換できません。
多くの場合、設計しなおしという対応が要求されます(それくらい文字コード問題というのは深刻)。

SBCSかどうかは、"表"があるとパスがおかしいとかで判断できるかもしれません。

あとは、意識してなくて、AnyCPU 問題ではまっている場合もありますね。
2008のようなのでEXEはデフォルトAnyCPUです。
C++は32bitモジュールです。
Windows 7 以降のOSは大半の環境が64ビットです。

この場合、DLLがロードできないという類のエラーになっているはず。
呼び出しのところで、クラッシュしてるかもしれませんけど。


返信 編集キー/


管理者用

- Child Tree -