
こんにちは。
以下のプログラムで s1 = "3ba9e...."の時、
for(i=0; i < (int)(s1Len/2); i++)
{
cc = s1.GetAt(2*i);
c2 = s1.GetAt(2*i+1);
}
1回目 cc=3 c2=0, 2回目 cc=a c2=b ・・・
という順序で取られていきます。
不思議な事にデバッグビルドでは正しく取られるのに、リソースビルドでこの現象がおきるのです。
解決策、あるいは回避策をご存知の方、ご教授願えないでしょうか。困っています。
ちなみに c2 = s1.GetAt(2*i+3) としたところ、1回目だけが正しく取れず cc=3 c2=0, 2回目以降は正しく取れました。
No.1ベストアンサー
- 回答日時:
うーん,わたしなら,OutputDebugString()とかで,i, s1, cc, c2 等のトレースを取りながら実行してみます.前スレによると,これはあるコードの一部を抜き出したもののようなので,他のコードが悪影響している可能性があるからです.
# GetAt() がリリース時に範囲チェックを行なわないのは,単純に速度を重視したためでしょう.
参考URL:http://www.nitoyon.com/vc/tutorial/debug/win32.htm
この回答への補足
回答ありがとうございます。
チェックした結果、ccとc2のアドレスが隣り合っていた事 + '\0'が終端に確保されていなかった為に、変数使用側で誤作動を起こしていたと思われます。失礼しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MessageBoxで表示される文字列...
-
Excelシート上で右クリックがで...
-
Excel VBAについて
-
木偏に「久」
-
エクセルに見えない文字(JISX0...
-
managed(push, off) の意味
-
ASP.netのおすすめ参考書
-
1日に1人がこなせるプログラム...
-
アクセスで桁数を増やしたい
-
スキャンコード取得は MapVirtu...
-
Nullの使い方が不正です。
-
sinカーブの表示のさせ方
-
access2021 VBA メソッドまたは...
-
gccの最適化オプションで挙動が...
-
VB6で読み上げをしたい
-
プログラムの記法 インラインコ...
-
Outlook 送受信エラー
-
差し込み後、元データを変更し...
-
for whichの使い方
-
エクセルで最後の文字だけ置き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
access2021 VBA メソッドまたは...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
エクセルに見えない文字(JISX0...
-
変数名「cur」について
-
access2003 クエリSQL文に...
-
Excelシート上で右クリックがで...
-
【VB6】実行ファイルとした後、...
-
COBOLの文法
-
Exel VBA 別ブックから該当デ...
-
JavaScriptの定数名が取り消し...
-
C# コードビハインドについて
-
JIPS-Eコードのコード表について
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
VBAでファイルオープン後にコー...
-
ユーザーフォームに2つのコン...
-
ACCESSユニオンクエリでORDER B...
おすすめ情報