相关疑难解决方法(0)

在Visual Studio中显示C++文件的#include层次结构

问题:我有一个大型的Visual C++项目,我正在尝试迁移到Visual Studio 2010.它是各种来源和不同年龄段的大量组合.我遇到了问题,因为有些事情包括winsock.hwinsock2.h.

问题:显示#includeVisual Studio C++源文件的层次结构有哪些工具和技术?

我知道cl /P获取预处理器输出,但是没有清楚地显示哪个文件包含哪些其他文件(在这种情况下/P输出为376,932行8-)

在一个完美的世界中,我想要分层显示哪些文件包含哪些其他文件以及行号,以便我可以跳转到源代码:

source.cpp(1)
  windows.h(100)
    winsock.h
  some_other_thing.h(1234)
    winsock2.h
Run Code Online (Sandbox Code Playgroud)

c++ include visual-studio

159
推荐指数
5
解决办法
6万
查看次数

C++重定义头文件(winsock2.h)

如何防止包含两次头文件?问题是我包括了MyClass.h中然后我将MyClass.h包含在许多文件中,因此它包含多次并发生重定义错误.怎么预防?

我正在使用#pragma而不是包含警卫,我想这很好.

MyClass.h:

// MyClass.h
#pragma once

#include <winsock2.h>

class MyClass
{

// methods
public:
 MyClass(unsigned short port);
 virtual ~MyClass(void);
};
Run Code Online (Sandbox Code Playgroud)

编辑:我得到的错误很少

c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(91) : warning C4005: 'AF_IPX' : macro redefinition
        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(460) : see previous definition of 'AF_IPX'
c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(124) : warning C4005: 'AF_MAX' : macro redefinition
        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(479) : see previous definition of 'AF_MAX'
c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(163) : warning C4005: 'SO_DONTLINGER' : macro redefinition
        c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(402) : …
Run Code Online (Sandbox Code Playgroud)

c++ header redefinition

133
推荐指数
9
解决办法
14万
查看次数

如何在C++中使用boost创建线程池?

如何使用C++中的boost创建线程池,如何将任务分配给线程池?

c++ boost boost-thread boost-asio threadpool

51
推荐指数
3
解决办法
6万
查看次数

套接字错误无法在WinSock2.h中获取函数

我已经创建了一个套接字包装类,但是我有太多的错误,我无法弄清楚如何解决.我尝试了Winsock教程错误,并且不能在MSVC 2010中包含Winsock2.h,但没有用

这是代码:

//#define WIN32_LEAN_AND_MEAN
#include <iostream>
#include <string>
#include <Windows.h>
#include <WinSock2.h>
#include <WS2tcpip.h>
#pragma  comment(lib,"ws2_32_lib")
using namespace std;
#define WM_SOCKET 0x10000

class Socket 
{


}; 
Run Code Online (Sandbox Code Playgroud)

以下是错误:

Error   107 error C3861: 'WSAStartup': identifier not found \85 1   Project2_SocketLib
Error   89  error C3861: 'WSASetLastError': identifier not found    C:\Program Files (x86)\Windows Kits\8.0\Include\um\WS2tcpip.h   696 1   Project2_SocketLib
Error   90  error C3861: 'WSASetLastError': identifier not found    C:\Program Files (x86)\Windows Kits\8.0\Include\um\WS2tcpip.h   703 1   Project2_SocketLib
Error   91  error C3861: 'WSASetLastError': identifier not …
Run Code Online (Sandbox Code Playgroud)

c c++ sockets windows

12
推荐指数
1
解决办法
2万
查看次数