C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[76174] Re:Re:Re:[질문] 프로그램에서 TidFTP 를 사용하려고 합니다.
주누 [] 865 읽음    2021-11-02 13:02
원인은 winsock.h 와 winsock2.h에 fd_set구조체가 각각 정의되어 있는데
둘중 하나만 include 해야되고 뭔가의 이유로 두개 모두 include 되면 발생합니다.

보통 해결 방법은
1. winsock2.h를 문제가 되는 소스의 최상단에 넣어둡니다.
(winsock2.h에 #define _WINSOCKAPI_가 정의되어 이후에 winsock.h 인클루드를 방지합니다.)
2. 프로젝트 선언에 _WINSOCKAPI_를 넣어서 winsock.h가 프로젝트 안에 아예 인클루드 안되게 합니다.
(찾을수 없다는 컴파일 오류가 뜬다면 해당 소스에 winsock2.h를 넣어주면 됩니다.)
정말로 해결방법은 winsock.h나 winsock2.h 둘중 하나만 쓰게끔 하면 됩니다.

만약 계속 문제가 발생한다면 winsock.h 와 winsock2.h 각 각 어딘가에서 include 된다는 뜻입니다.

그러니 프로젝트선언에도 넣었음에도 안된다면 어떤 이유에 의해 둘다 include 되게 되었다는 것이니까
차라리 winsock2기능을 안쓰신다는 가정하에 winsock2.h를 안쓰고 winsock.h을 include 하시면 해결 될 수도 있습니다.


하안인 님이 쓰신 글 :
:
: 헤더파일에
:
: #define _WINSOCKAPI_
:
: 이렇게 한다는 건가요...
:
: project opton    conditionals 에는 추가해 줘도 에러가 발생해서요.
:
:
:
: 주누 님이 쓰신 글 :
: : 어딘가에 winsock.h를 참조하는 부분이 있어서 그렇습니다.
: : (windows.h에 포함)
: : 프로젝트 선언에
: : _WINSOCKAPI_ 를 강제로 디파인해주면 winsock.h 인클루드 안하게 할순 있습니다.
: :
: : 하안인 님이 쓰신 글 :
: : :
: : :
: : : Multiple decalration for 'fd_set'
: : :
: : : 검색해 보면 winsock2.h 를 처음 선언해 주면 된다고 하는데
: : : 헤더파일이나 cpp 내 맨위에 삽입해도 똑같은 결과가 나와서요.
: : : 도움을 요청합니다.
: : :
: : : 사용하는 언어는 c++builder 6.0 을 사용하고 있습니다.
: : :
: : : 기존에 6.0에서 사용하고 있던거라 파일전송 부분만 추가하려고 하는데
: : : 문제가 생기네요.
: : :
: : : 아시는분 도움을 요청드립니다.
: : :
: : :
: : :
: :

+ -

관련 글 리스트
76171 [질문] 프로그램에서 TidFTP 를 사용하려고 합니다. 하안인 938 2021/10/21
76172     Re:[질문] 프로그램에서 TidFTP 를 사용하려고 합니다. 주누 898 2021/10/25
76173         Re:Re:[질문] 프로그램에서 TidFTP 를 사용하려고 합니다. 하안인 912 2021/10/26
76174             Re:Re:Re:[질문] 프로그램에서 TidFTP 를 사용하려고 합니다. 주누 865 2021/11/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.