掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Win32 Applicationで通信するには (ID:62158)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
とりあえず自分で下記のような感じで作ったのですが error C2664: 'inet_addr' : 1 番目の引数を 'struct HWND__ *' から 'const char *' に変換できません。 と言うようなエラーが出て進まないのですがこのエラーを回避するのはどうしたらいいか教えてください… #define STRICT #define WIN32_LEAN_AND_MEAN #include <windows.h> #include "resource.h" #include <winsock2.h> #include <stdio.h> #include <conio.h> #define SIZE 1000 WSADATA wsadata; WORD wversion = MAKEWORD( 2, 0); SOCKET c_socket; struct sockaddr_in client; int nError; BOOL CALLBACK DlgProc(HWND hDlg,UINT Msg, WPARAM wParam, LPARAM lParam) { char str[256]; char a[SIZE]; char data[SIZE]; switch(Msg) { case WM_INITDIALOG: SetDlgItemText(hDlg,IDC_IP, "***.***.***.***"); SetDlgItemText(hDlg,IDC_PORT, "20000"); SetDlgItemText(hDlg,IDC_KAZU, ""); SetDlgItemText(hDlg,IDC_LOOP, "1"); str[0] = '\0'; return TRUE; case WM_COMMAND: switch(LOWORD(wParam)) { case IDSOSIN: GetDlgItemText(hDlg,IDC_IP, str, 255); GetDlgItemText(hDlg,IDC_PORT, str, 255); GetDlgItemText(hDlg,IDC_KAZU, str, 255); GetDlgItemText(hDlg,IDC_LOOP, str, 255); //Winsock初期化 nError = WSAStartup( wversion, &wsadata); if( nError) { MessageBox(NULL, "初期化エラー", "エラー", MB_OK); return -1; } //Winsockのバージョン確認 if( wversion != wsadata.wVersion){ MessageBox(NULL, "バージョンエラー", "エラー", MB_OK); return -1; } //ソケット作成 c_socket = socket( AF_INET, SOCK_STREAM, 0); if(c_socket < 0){ MessageBox(NULL, "ソケット作成失敗", "エラー", MB_OK); return -1; } //各種設定 memset( &client, '\0', sizeof( client)); client.sin_family = AF_INET; client.sin_addr.s_addr = inet_addr(hDlg); client.sin_port = htons(hDlg); //接続 if( connect(c_socket, (struct sockaddr *)&client, sizeof(client)) < 0) { MessageBox(NULL, "接続エラー", "接続エラー", MB_OK); return -1; } if( send(c_socket,hDlg, strlen(a), 0) < 0){ MessageBox(NULL, "送信エラー", "エラー", MB_OK); return -1; } MessageBox(NULL, "送信完了", "送信", MB_OK); //データを受信 nError = recv(c_socket, data, sizeof(data), 0); if( nError <= 0) { MessageBox(NULL, "受信エラー", "エラー", MB_OK); return -1; } data[nError] = '\0'; MessageBox(NULL, data, "受信", MB_OK); //ソケットを閉じる closesocket( c_socket); //Winsock後処理 WSACleanup(); return TRUE; // MessageBox(hDlg, str, "取得されたメッセージ", MB_OK); case IDEND: EndDialog(hDlg,wParam); return TRUE; } break; } return FALSE; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DlgProc); return 0; }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.