Я включаю в себя, как это требуется библиотекой MySQL C.
Автозаполнение в VS2010 также показывает любую идею, что это такое?
Являются ли они взаимозаменяемыми и есть ли преимущества одного над другим?
Спасибо!
Я включаю в себя, как это требуется библиотекой MySQL C.
Автозаполнение в VS2010 также показывает любую идею, что это такое?
Являются ли они взаимозаменяемыми и есть ли преимущества одного над другим?
Спасибо!
@cost answer ссылки к обсуждению, которое, среди прочего, задает этот вопрос, на который никогда не отвечали:
Есть ли причина, по которой я не могу включить windows.h перед winsock2.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
.
Вы должны использовать winsock2.h
, если вы не хотите использовать Winsock 1.1. winsock2.h
для Winsock 2.
Подробнее об этом можно прочитать на странице Wikipedia Winsock.