我包含了MySQL C库所要求的内容.
VS2010中的自动完成也显示出 - 任何想法是什么?
它们是否可以互换,是否有任何优势?
谢谢!
Rem*_*eau 24
@cost的答案链接到一个讨论,除其他外,问这个问题从未得到回答:
有没有理由我在winsock2.h之前不能包含windows.h,它给了我很多错误,但是一旦我切换它们的顺序,一切都没问题......为什么会这样?
windows.h包括winsock2.h在编译较新的Windows版本时,但对于较旧的开发,它包括winsock.h.但问题不仅限于此windows.h.任何时候winsock.h都包括在内winsock2.h,会有编译器错误.原因是因为这两个文件并不能很好地共存. winsock2.h旨在取代 winsock.h而不是扩展它.定义的所有winsock.h内容也在中定义winsock2.h.如果winsock2.h之前包含winsock.h,则winsock2.h定义_WINSOCKAPI_为阻止编译器处理后续winsock.h包含,并且一切正常.但如果winsock.h之前包含winsock2.h,winsock2.h则不会检测到并尝试重新定义winsock.h已定义的所有内容,从而导致编译失败.
将混合使用winsock.h的代码与winsock2.h在同一项目中使用的代码混合使用时,必须非常小心.例如,在编写自己使用的套接字代码时,使用winsock2.h仍在使用的第三方库winsock.h.