none
数値文字列変換部分で例外 RRS feed

  • 質問

  • C++のdllから当該プロセスのHLWebに向けてのsendmsgに対する受信処理ですが、どんなコードが来ているかを調べるため
    次のコードを書きましたがlblrcvmsgへの表示で例外がでました。 これは受信側単独の現象です。
    この行を外せば正常に処理できます。他の個所の似た変換処理では問題ありません。
    何が悪いのでしょうか。

    ハンドルされていない例外
    System.StackOverflowException

    HLWebの受信処理
           public const int WM_APP = 0x8000     //0x400;
            protected override void WndProc(ref Message m)
            {
                int cmd;
                cmd = m.Msg;
                lblrcvmsg2.Text = cmd.ToString("X");  <--- 例外発生 m.Msg.ToString("X")でもおなじ
                switch (cmd)
                {
                    case WM_APP + 1:    // up
      ・・・・・・・・・・・・・・・・・・
                }
                base.WndProc(ref m);
            }

    2019年10月17日 22:42

回答

  • lblrcvmsg2.Text = "any string";

    は、SendMessage(hwnd, WM_SETTEXT, wp, lp); を実行するため、WndProc呼び出しを引き起こします。無限の再帰呼び出しですから、StackOverflowExceptionが発生するのは当然です。

    値を見るのであれば、デバッガーを使用し、トレースポイントを使うべきです。

    • 回答の候補に設定 佐祐理 2019年10月18日 1:18
    • 回答としてマーク sige2 2019年10月26日 9:32
    2019年10月17日 22:57
  • sige2さん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    ご質問いただいた件ですが、その後いかがでしょうか。
    佐祐理さんから寄せられた投稿はお役に立ちましたか。

    参考になった投稿には [回答としてマーク] をお願い致します。

    設定いただくことで、
    他のユーザーもお役に立つ回答を見つけやすくなります。

    お手数ですが、ご協力の程どうかよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    • 回答としてマーク sige2 2019年10月26日 9:33
    2019年10月23日 1:36
    モデレータ

すべての返信

  • lblrcvmsg2.Text = "any string";

    は、SendMessage(hwnd, WM_SETTEXT, wp, lp); を実行するため、WndProc呼び出しを引き起こします。無限の再帰呼び出しですから、StackOverflowExceptionが発生するのは当然です。

    値を見るのであれば、デバッガーを使用し、トレースポイントを使うべきです。

    • 回答の候補に設定 佐祐理 2019年10月18日 1:18
    • 回答としてマーク sige2 2019年10月26日 9:32
    2019年10月17日 22:57
  • なるほど。そうでしたか。

    ありがとうございました。

    2019年10月18日 0:47
  • sige2さん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    ご質問いただいた件ですが、その後いかがでしょうか。
    佐祐理さんから寄せられた投稿はお役に立ちましたか。

    参考になった投稿には [回答としてマーク] をお願い致します。

    設定いただくことで、
    他のユーザーもお役に立つ回答を見つけやすくなります。

    お手数ですが、ご協力の程どうかよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    • 回答としてマーク sige2 2019年10月26日 9:33
    2019年10月23日 1:36
    モデレータ