0

テキストボックスからホストIPを使用すると、サーバーに接続できません。私のコードを参照してください:

                    char *bufhost;
                int bufhostlen;
                bufhostlen = GetWindowTextLength(hwndTextBox_ip) + 1;
                GetWindowText(hwndTextBox_ip, bufhost, bufhostlen);
                sockaddr_in sin;
                sin.sin_family=AF_INET;
                sin.sin_port=htons(5060);
                sin.sin_addr.s_addr=inet_addr(bufhost);
                connect(sock,(LPSOCKADDR)(&sin),sizeof(sin));

私が使用する場合

sin.sin_addr.s_addr=inet_addr("127.0.0.1");

問題なく接続します。

私は本当にこの仕事を得る方法を知りません(何時間も検索しました...)助けてくれてありがとう:-)

解決 :

PermanentGuestが私に言ったように、私は自分のバッファにメモリを割り当てなければなりません:

                    char *bufhost;
                int bufhostlen;
                bufhostlen = GetWindowTextLength(hwndTextBox_ip) + 1;
                bufhost = (char*) malloc(bufhostlen);
                GetWindowText(hwndTextBox_ip, bufhost, bufhostlen);
                sockaddr_in sin;
                sin.sin_family=AF_INET;
                sin.sin_port=htons(5060);
                sin.sin_addr.s_addr=inet_addr(bufhost);
                connect(sock,(LPSOCKADDR)(&sin),sizeof(sin));
4

1 に答える 1

1

bufhostにメモリを割り当てる必要があります。残念ながら、GetWindowTextのドキュメントにはこれが明示的に記載されていません。ただし、すべてのwin32 APIの場合、これは一般的な動作です。

于 2012-08-05T19:17:45.960 に答える