タイトルの通りです。ヘッダー ファイルを複数回インクルードしたため、再定義エラーが発生しました。それが原因なのはわかっていますが、解決方法がわかりません。はい、以前に SO に同じ問題を 1 時間前に投稿しました。でもちゃんと説明できず(そう思う)、期待通りの答えが得られませんでした。リンクは次のとおりです。
その質問はいっぱいになったので編集していません:)。
さて、いくつかのクラスがあり、それらの構造は次のようになります。
main.cpp:
#include "Server.h"
#include "Handler.h"
#include "Processor.h"
int main(int argc, char* argv[])
{
}
サーバー.h:
// Server.h
#pragma once
#include <winsock2.h>
Handler.h:
// Handler.h
#pragma once
#include <string>
#include <vector>
#include "Server.h"
Processor.cpp:
// Processor.cpp
#include "StdAfx.h"
#include "Processor.h"
#include "Handler.h"
サーバー.cpp:
// Server.cpp
#include "Server.h"
#include "Processor.h"
問題は、<winsock2.h>
複数回含まれていることです。どこにあるのかわかりません。#pragma onceは同じ目的を果たします
#ifndef SOME_FILE_H
#define SOME_FILE_H
// code here
#endif // SOME_FILE_H
私のコンパイラ(この場合はMSVC2008)。したがって、ヘッダーインクルードガードは必要ないと確信しています。しかし、2回含まれている間違いをどこで犯しているの<winsock2.>
か、どうすれば解決できますか?
ありがとう