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

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

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

Re[3]: VC++でStringTableの文字エンコーディング


(過去ログ 103 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■61642 / inTopicNo.1)  VC++でStringTableの文字エンコーディング
  
□投稿者/ ぺんたごん (1回)-(2011/08/25(Thu) 09:38:58)

分類:[C/C++] 

こんにちは

 VC++2010でリソースDLLを作っています。当然埋め込んだリソースはDLL内部では使いません。
 
 埋め込むリソースは主にStringTableなのですが、ロードする側(自製じゃない)がどうも
 UTF16?UTF8?を想定した実装になっているようで、文字化けしてしまいます。
 
 そこでStringTableに埋め込まれる文字列の文字エンコーディングをUTF16やUTF8などに
 変更したいと思っているのですが、どこをどう設定すればよいのかが皆目見当が付きません。
 
 一応ぐぐってみたのですが、取得するときに変換するような方法しか出てきませんでした。
 
 どうかご教示いただければと思います m(_ _)m

以上よろしくお願いします
引用返信 編集キー/
■61647 / inTopicNo.2)  Re[1]: VC++でStringTableの文字エンコーディング
□投稿者/ 774RR (608回)-(2011/08/25(Thu) 10:37:09)
現状が mbcs build なんだったら、単純に unicode build すればいいんでないかな?
現状が unicode build なんだったら、使う側が要求している encoding がわからないと対策なし。
引用返信 編集キー/
■61649 / inTopicNo.3)  Re[2]: VC++でStringTableの文字エンコーディング
□投稿者/ ぺんたごん (2回)-(2011/08/25(Thu) 11:01:28)
返信ありがとうございます

No61647 (774RR さん) に返信
> 現状が mbcs build なんだったら、単純に unicode build すればいいんでないかな?
> 現状が unicode build なんだったら、使う側が要求している encoding がわからないと対策なし。

がんばって調べてみました。
プロジェクトプロパティの構成プロパティ->リソース->全般 の
「プリプロセッサの定義」には"_UNICODE;UNICODE"が定義されていましたが
この項目で間違いないですか?
※実はC++はまったく使ったことがなく、リソースDLLのためだけに今さっき使い始めたので
 「どこをどう設定すればよいのか」がわかってません。

間違いなければUNICODEにはなっているはずなのでどうしようもないってことですか…
UTF8が設定できれば試してみたいんですが調べたところMBCSとUNICODEしかなさそうですね。

ロード側のほうに問い合わせてみます。ありがとうございました。
解決済み
引用返信 編集キー/
■61654 / inTopicNo.4)  Re[3]: VC++でStringTableの文字エンコーディング
□投稿者/ 774RR (609回)-(2011/08/25(Thu) 12:31:05)
まあ Visual C++ 2010 の標準は UNICODE (_UNICODE) だし mbcs の可能性は薄いと思ったけど
やっぱり UNICODE build だったですか・・・

VC++ の wchar_t は UTF-16 なので UNICODE build するとリソース(の内部コード)も UTF-16 になるです。
それで [文字化け] しているとしたら、可能性はいくつかあって
・使う側が要求する encoding が UTF-16 でない
・使うほうが FONT を正しく選んでいない
・使うほうが採用している FONT が(ターゲットマシンに)無い
・使うほうが setlocale 等での「地域指定」が正しくない(またはまったくサポートしていない)
あたりかもしれないです(まったく別の原因かもしれないが)。
# native win32 配下で resource DLL を使うのに UTF-16 以外を採用するとは思えないが・・・

いずれにせよ使う側の仕様を確認しないとこの場ではなんとも言いようが無いですな。
解決済み維持しておきます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -