ページ 1 / 1
C#+DxLibでUTF-16の文字を表示したい
Posted: 2017年5月03日(水) 02:48
by Disco
C#とDxLibを使ってゲームを作りはじめたのですが、機種依存文字が正しく表示されないという問題に遭遇しました。
UTF-16の文字を全て表示できるようにしたいです。
コード:
SetMainWindowText("ハート♡");
この結果、タイトルバーが"ハート?"になります。
SetUseCharCodeFormatを試しましたが、うまくいきませんでした。
Google検索しても有用な情報は得られませんでした。
解決策をご存知であれば、ご教授お願い致します。
一応、環境はWindows 10、Visual Studio Enterprise 2015です。
Re: C#+DxLibでUTF-16の文字を表示したい
Posted: 2017年5月03日(水) 03:30
by YuO
DxLib公式サイトで配布されているライブラリは,Unicode版ではない実装になっています。
DxLibDotNet3_18a.zip#DxLibDotNet/Source/DxDLL.cpp さんが書きました:コード:
int __stdcall dx_SetWindowText( const char * WindowText)
{
return SetWindowText( WindowText);
}
このため,現在のコードページに存在しない文字を利用する事は出来ません。
DxLibの実装自体を見ると,Unicodeでビルドも可能なはずなので,Unicodeビルド + Unicode用DLL,
という構成を自分でビルドしてしまえば,現在のコードページに含まれない文字も(フォントがあれば)出力できると思います。
オフトピック
Enterprise版,いいなぁ……。
さすがに初回2年100万円超えのバージョンを使いこなす自信は無いし,家ではCommunity版/会社でもProfessional版で十分ではありますが。
とはいえ,家でもCodeLens欲しくなる事はありますし(Professional以上),一度くらいCode Clone実行してみたい(Enterprise Only)。
Re: C#+DxLibでUTF-16の文字を表示したい
Posted: 2017年5月03日(水) 09:01
by Disco
回答ありがとうございます。
公式ダウンロードページの「改造希望の方へ」からプロジェクトをダウンロードしてdllを作成する方法で解決できますでしょうか。
オフトピック
専門学校に入ってノートPCにEnterprise版を入れられたのでよかったです。使いこなせるよう頑張りたいです。
Re: C#+DxLibでUTF-16の文字を表示したい
Posted: 2017年5月03日(水) 10:18
by Disco
Unicode版DxLib.dllおよびDxLib_x64.dllをビルドする方法を教えていただきたいです。
Re: C#+DxLibでUTF-16の文字を表示したい
Posted: 2017年5月14日(日) 12:51
by Disco