C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[3829] Re:VC++ 과의 작업 호환성-_-
박지훈.임프 [cbuilder] 3313 읽음    2002-03-15 14:52
말씀하신 것 중에 for 문내에서의 변수의 예는, VC가 표준 C++을 지키지 않은 예로 유명한 것입니다.
벌써 여러해 동안 지적되어온 꽤 오래된 문제인데 아직도 해결이 안되었군요.
컴파일러 설계단계에서 변수의 스코프를 잘못 설계했기 때문에 그런 문제가 발생한 것으로 압니다.

그럼...


I.MagicPotato 님이 쓰신 글 :
:  (제가 다른데 썼던걸 고대로 옮깁니다)
:
:
:  지금 작업중인 서버를 어느정도 짜고..클라이언트에 붙여봤는데..
:
:
:  참 그전에 이런일이 있었죠..
:  3D엔진은 VC++로 작업, 클라이언트에 붙는 네트웍 인터페이스는 BCB로 작업
:
:  LIB나 DLL로 하려니 뭔가 변환을 해야하는지-_-기술이 부족 =_=
:  (화이트페이지에 방법을 알지만-_-복잡하고 귀찮다는거 아실껍니다)
:  그래서 소스로 껴서 함께 컴파일을 하려는데..
:
:  다음과 같은 문제로 불가능
:
:
:  첫번째.. for(int i ...) / for(int i ...) 를
:  VC++은 for(int i ... ) / for( ... )
:
:  이런식으로 해야했고 -_- (이건 알고 있던건데-_-왜이런 실수를 했는지;;)
:
:
:  두번째.. (void *)pPack = vpCasting; // 기억이 안나지만 이런식.
:  좌측 캐스팅은 VC++에서 안먹더군요 -_-
:
:  즉.. pPack = (char *)vpCasting; 으로 해야 했습니다.
:  (char *)문제가 아니라-_- 저 (char *)보다 훨씬 긴 구조체 였기 때문이죠..
:  (코딩을 짧게 짜기 위한-_-)
:
:
:  세번째.. std::bad_alloc 또는 xalloc
:  VC++은 저게 없더군요-_-덕분에 <iostream> 아예 날리고.. if(pDest) 로 검사
:  (ANSI C++을 지키지 않았다는 소리-_-)
:
:
:  -_-조금 귀찮았지만 어떻게 어떻게 고쳐서 컴파일이 되었고.
:
:
:  서버를 붙여봤습니다. (서버는 BCB로 제작)
:  그런데 치명적인 문제 발생-_-
:
:  -_-VC++에 비트필드/pack기능이 약하더군요
:
:
:  #pragma pack(1)
:  struct {
:   int i:1;
:  }
:  #pragma pack()
:
:  VC++은 저 구조체가 4바이트, BCB는 1바이트......
:  100개가 넘는-_-패킷 구조체를 몽땅 뜯어고쳐야 했습니다 ;
:
:
:  근데 귀찮아서-_-서버를 그냥 VC++로 컴파일 -_-;
:  (세번째 bad_alloc 문제만 해결하니 바로 되었네요)
:
:
:  문제는.. 쓸떼없는 패킷까지 전송하게 만드는 VC++....
:  클라이언트분도 문제를 아시고 급한불 끄면 BCB로 컨버팅 해야 한답니다.
:  (CPU명령 생성 문제나 MMX명령 컴파일 문제도 있고 하고..)
:
:
:  빌더가 다시한번 좋다고 느껴지는 한편..
:  왜 많은 개발자가 빌더를 쓰고싶어도 못쓰는지-_-
:
:  위와 같은 문제는 단순한 문제고.
:  좀더 복잡한 프로젝트를 할 경우 어떤 문제가 생기는지도 모르겠네요
:
:  저같은 입장으로썬 볼랜드의 웹진영이나 크로스플랫폼-_-전략..
:  이런거 다 필요없고
:
:  VC++과의 호환에 맞춰주면 좋으련만.
:
:

:  덧글
:
:  글을 쓰고나니-_-VC++형식으로 컴파일 되게 해달라 라고 쓴거 같은데-_-
:  그렇게 되면 빌더 안쓰죠 =_=
:
:  최소한 LIB/DLL만이라도 VC++에서 바로 사용가능하게 뽑아낼수 있으면 좋을텐데..
:  문제 1,2,3은 프로그램 성능같은데 큰 문제를 불러오진 않지만..
:
:  1바이트가 아까운 네트웍에서 4번째와 같은 문제는 안되죠..
:  모두 VC++컴파일러가 앞서지 못한 문제지만-_-
:
:  볼랜드에서 쫌만 신경쓰면 가능할텐데 -_-
:  많이 아쉬운 부분이 요즘 또 보이는군요.
:
:
:  덧글2
:
:  닷넷을 지원한다고 했는데
:  빌더로 닷넷환경에서 개발할수 있다는건지.
:  빌더로 VS.NET 개발툴을 쓰는 프로그래머와 함께 근접적인 개발이 가능한건지 모르겠네요.
:  (아마 전자겠죠? =_=)
:

+ -

관련 글 리스트
3822 VC++ 과의 작업 호환성-_- I.MagicPotato 3452 2002/03/15
3829     Re:VC++ 과의 작업 호환성-_- 박지훈.임프 3313 2002/03/15
3824     Re: 흐흐.. 질문을 날리시져...^^;; 타락천사 3425 2002/03/15
3825         -_-음 I.MagicPotato 3193 2002/03/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.