こんにちわ。
CString型で持っている値(例:111.0.0.0)を、
CIPAddressCtrlのSetAddress()を使ってIPアドレスとして表示したいのですが、
うまくいきません。
何かいい方法はないでしょうか?
ご教授お願いします。
'うまくいきません'を説明してください。
'.'で区切って4つの数字列とし、それぞれを数値に変換して
SetAddressに与えるだけではないかと。
言葉足らずですいませんでした。
うまくいかない、とは、
文字列を4つに分けて、それを数値に変換する、
というのがうまく出来なかったんです。
一応、不恰好ではありますが、
CString a = m_str.Left(m_str.Find('.',0));
m_str.Delete(0,(m_str.Find('.',0)+1));
CString b = m_str.Left(m_str.Find('.',0));
m_str.Delete(0,(m_str.Find('.',0)+1));
CString c = m_str.Left(m_str.Find('.',0));
m_str.Delete(0,(m_str.Find('.',0)+1));
CString d = m_str;
とし、それぞれatoi()を使用して数値に変換するようにしました。
ありがとうございました。
入力が必ずIPアドレスの形式であるという前提ならば
sscanfが有効です。
CString::Findは検索開始位置を指定できるのでいちいちDeleteする必要がなくなりま
す。
inet_addr()が簡単では。
in_addr a;
a.s_addr = inet_addr(m_str);
m_ipactrl.SetAddress(a.s_net, a.s_host, a.lh, a.impno);