誰か翻訳して下さい
http://pc8.2ch.net/test/read.cgi/tech/1147832791/888-901
888 :デフォルトの名無しさん :2006/12/05(火) 19:07:50
ソースコード中に直接 AECHAR 文字列を記述したい時って、
ANSI ワイド文字列みたいに
L"なんてろかんてろ"
みたいなことはできないのだろうか。
現状では、
AECHAR szString[10] = { '', '', .... 0} ;
みたいな書き方をしてるんだけども。
889 :デフォルトの名無しさん :2006/12/05(火) 19:49:03(※2)
>>888
プリプロセッサ書けばいいじゃない?
890 :デフォルトの名無しさん :2006/12/05(火) 22:06:09(※1)
>>888
俺は全部 String クラスを作って操作してるな。
内部で AECHAR に変換して使ってる。
どうしてもソース中に書きたいなら、
const char cstr = "なんてろかんてろ\0";
const AECHAR* str = (AECHAR*)cstr;
全角だけならこれでいいんじゃない?
891 :デフォルトの名無しさん :2006/12/05(火) 22:32:09
私はPerlとかで16進のコードに変換して、
AECHAR achar = { 0x.., 0x.., 0x.., 0 };
って感じにコピペしてる。
892 :デフォルトの名無しさん :2006/12/05(火) 23:25:30
#define C2W(c,w) STREXPAND((byte*)c,STRLEN(c),w,sizeof(w))
でいいじゃん
893 :デフォルトの名無しさん :2006/12/06(水) 00:18:47
AECHARをソースに書きたい? 俺は出力最終段でしか使ってないな
APIを生で使うやつ死ねばいいのにー
894 :デフォルトの名無しさん :2006/12/06(水) 00:31:14
なるべく不測のメモリ消費は避けたいじゃない。
システムメッセ的な固定ものは組み込んでおいたほうが。
895 :890:2006/12/06(水) 00:50:54(※1)
そういえば ARM で、
"〜することが可能です"
とか書いてたらアウトだった気がする。能に 0x5C('\\') が含まれてるから。
そういう意味でも文字列を直接書くのは危ないよな。
ちなみに、
"〜することが可能\です"
って書けば ARM でも動いたはずだけど、
エミュのソースと分ける必要が出てくるからめんどい。
あと >>890 の蛇足だけど、半角文字を扱うなら、
const char cstr[] = "n\0u\0l\0l\0\0";
const AECHAR* str = (AECHAR*)cstr; // L"null" が入る
これでいけるはず。
ワイド文字のメモリ配置とか分かってるならこれでいいんでない?
896 :デフォルトの名無しさん :2006/12/06(水) 01:23:53(※2)
>>895
> って書けば ARM でも動いたはずだけど、
> エミュのソースと分ける必要が出てくるからめんどい。
>>889
897 :デフォルトの名無しさん :2006/12/06(水) 01:32:12(※1)
それ、プリプロセッサで分ければいいってこと?
それがめんどいって言ってるんだけどね……。
898 :デフォルトの名無しさん :2006/12/06(水) 01:32:42
おらも>>891でやってるべよ
899 :デフォルトの名無しさん :2006/12/06(水) 03:28:45(※2)
>>897
わからないなら説明してもしょうがないな。
つか、プログラマなら自分でプログラム書いて解決しろよ。
900 :デフォルトの名無しさん :2006/12/06(水) 04:58:42(※1)
>>899
何か良い方法があるなら教えてくんろ。
自前でプリプロセスしろってことだったら
あんたさんがそのツールを Wiki に置いておくれよん。
901 :デフォルトの名無しさん :2006/12/06(水) 15:35:26(※2)
baka ha suruu de
(※1)(890, 895, 897, 900)は自分の発言なんだけど、(※2)(889, 896, 899, 901)の意図がさっぱり分からなかったり。
誰か分かる方教えて下さい(;´Д`)