恐らくインクルードについての問題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ペカチュウ
記事: 2
登録日時: 9年前

恐らくインクルードについての問題

#1

投稿記事 by ペカチュウ » 9年前

お初にお目にかかります。
最近C++のプログラミングを始めたのですが、スクリプト言語と比べるとヘッダー定義など
新しい要素が満載でいろいろとトラブルが続出しています。

windowsのvisual studioでソケットの実験のコードを書いたのですが
ヘッダーをインクルードしているはずなのに

一例として
エラー 9 error LNK2019: 未解決の外部シンボル __imp__WSAStartup@8 が関数 "public: __thiscall Server::Server(void)" (??0Server@@QAE@XZ) で参照されました。 c:\Users\yosip\documents\visual studio 2013\Projects\Project1\Project1\Server.obj Project1

のようなエラーがでます。
恐らくインクルード関連の問題だとは思いますが
問題の関数をマウスオーバーするとしっかりと引数の説明は出てきます。
なぜこのようなエラーが出るのでしょうか?
回答をお願いします。

コード:

#include<winsock2.h>

#include<iostream>


class Server
{
public:
	Server();

	sockaddr_in server_addr;
	sockaddr_in client_addr;

	WSADATA data;
	SOCKET server_sock;
	SOCKET client_sock;
	int len;
	
};

コード:


#include "Server.h"



Server::Server()
{
	WSAStartup(MAKEWORD(2, 0), &data);

	server_sock= socket(AF_INET, SOCK_STREAM, 0);

	server_addr.sin_family = AF_INET;
	server_addr.sin_port = htons(12345);
	server_addr.sin_addr.S_un.S_addr = INADDR_ANY;

	bind(client_sock, (struct sockaddr *)&server_addr, sizeof(server_addr));

	listen(client_sock, 5);

	while (1){
		len = sizeof(client_addr);
		client_sock = accept(server_sock, (struct sockaddr *)&client_addr, &len);
		send(client_sock, "HELLO", 5, 0);

		closesocket(client_sock);
	}

	WSACleanup();


}


int main(){
	Server ser();
}



ペカチュウ
記事: 2
登録日時: 9年前

Re: 恐らくインクルードについての問題

#3

投稿記事 by ペカチュウ » 9年前

回答してもらったページの内容は現在のvisual stdioとはバージョンが違うせいか
そのまま参考にすることはできませんでした。

ただ問題がライブラリのリンクにあることは理解できたので
それを元に調べると

#pragma comment(lib, "wsock32.lib")

の追加でもコンパイルが通りました。

わざわざ、くだらない質問の回答をしてもらいありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る