先回の900スレあたりでいろいろと教えてもらった者です
( `・ω・´)ノヨロシクー
テキストボックスから読み込んだ文字列を、16進数に変換するプログラムで
16進数以外を入力したら
"変換が正常に行われませんでした"
を出したいのだけど
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
errno=0;
pin_ptr<const wchar_t> text = PtrToStringChars(textBox1->Text);
//16進数に変換
wchar_t* pEnd;
unsigned long ul = std::wcstoul(text, &pEnd, 16);
/*整合性のチェック(16進数かどうか)
if(errno != 0){
/* errno has changed, so error has occurred */
MessageBox::Show("変換が正常に行われませんでした");
}
}

なぜか数字は、8桁迄は問題無いけど、9桁以上入力すると
"変換が正常に行われませんでした"
が表示されるし
A-Fを8桁以上入れると
"変換が正常に行われませんでした"
A-F以外なら何桁でも何も出てこない
本来意図する反対の様な振る舞いなんだが
漏れが意に反するコードを書いているためだと思うが
(´ε`;)ウーン…ワカラン
なんで?