C#+DxLibでUTF-16の文字を表示したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Disco

C#+DxLibでUTF-16の文字を表示したい

#1

投稿記事 by Disco » 3年前

C#とDxLibを使ってゲームを作りはじめたのですが、機種依存文字が正しく表示されないという問題に遭遇しました。
UTF-16の文字を全て表示できるようにしたいです。

コード:

SetMainWindowText("ハート♡");
この結果、タイトルバーが"ハート?"になります。
SetUseCharCodeFormatを試しましたが、うまくいきませんでした。
Google検索しても有用な情報は得られませんでした。
解決策をご存知であれば、ご教授お願い致します。
一応、環境はWindows 10、Visual Studio Enterprise 2015です。

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: C#+DxLibでUTF-16の文字を表示したい

#2

投稿記事 by YuO » 3年前

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)。

Disco

Re: C#+DxLibでUTF-16の文字を表示したい

#3

投稿記事 by Disco » 3年前

回答ありがとうございます。
公式ダウンロードページの「改造希望の方へ」からプロジェクトをダウンロードしてdllを作成する方法で解決できますでしょうか。
オフトピック
専門学校に入ってノートPCにEnterprise版を入れられたのでよかったです。使いこなせるよう頑張りたいです。

Disco

Re: C#+DxLibでUTF-16の文字を表示したい

#4

投稿記事 by Disco » 3年前

Unicode版DxLib.dllおよびDxLib_x64.dllをビルドする方法を教えていただきたいです。

Disco

Re: C#+DxLibでUTF-16の文字を表示したい

#5

投稿記事 by Disco » 3年前

http://dxlib.o.oo7.jp/cgi/patiobbs/pati ... ew&no=4110
DXライブラリの作者様にUnicode版を対応していただきました。
これで解決とさせていただきます。

返信

“C言語何でも質問掲示板” へ戻る