▼ノベルゲームツールを作っちゃうぞ!Ver3.0at GAMEDEV▼ノベルゲームツールを作っちゃうぞ!Ver3.0 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト829:名前は開発中のものです。 06/11/10 19:55:35 jEDzoqtR if((m_Log_Text.at(m_It)>=(char)0x81 && m_Log_Text.at(m_It)<=(char)0x9F) || (m_Log_Text.at(m_It)>=(char)0xE0 && m_Log_Text.at(m_It)<=(char)0xFF)){ m_It += 2; } と if((m_Log_Text.at(m_It)>=0x81 && m_Log_Text.at(m_It)<=0x9F) || (m_Log_Text.at(m_It)>=0xE0 && m_Log_Text.at(m_It)<=0xFF)){ m_It += 2; } は、意味が、結果が異なってるってのは分かってる? 830:名前は開発中のものです。 06/11/10 20:30:11 5S9vD1uX 上は右辺がchar型にキャストされるので比較時に左辺の返り値はそのまま、 下は右辺がint型なので比較時に左辺の返り値がintにキャストされる、でしょうか? 多分そうだとは思うのですが、確証は持てません(汗 831:167 06/11/10 20:37:23 5S9vD1uX ↑は167でした(汗 832:名前は開発中のものです。 06/11/10 20:41:34 jEDzoqtR 何言ってるのかよくわからんが、違う。 char + charはint型を返す。そんなことじゃない。 0x81は正の整数で、(char)0x81は負の整数だ。 WindowsのVCはcharは符号付の型だからな。 でm_Log_Textはstring型で、at()の戻り値はchar型だ。つまり下の >m_Log_Text.at(m_It)>=0x81 は必ずfalseになる。charは128以上を表せない。 よって、中途半端なマルチバイトが出来上がるわけだ。 これが表示されなかったり、生成が遅かったりすると、処理落ちしたように見える。 つまり、その式が遅いわけではない。 何がプロファイルとった、だよ。嘘付くな。取ってないだろ。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch