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
[66497] Re:Re: 빌더님 잘되네요. 감사합니다
cubase [] 1464 읽음    2012-03-03 21:16
컴파일 잘되고 동작도 제대로 되네요. 빌더님 정말 감사합니다. 그런데 델파이 컨설턴트 한다는 분은
잘 알지도 못하면서 답변을 왜 저렇게 하시는지. 델파이 컨설턴트??? 컨설턴트는 말만 잘하면 된다고
알고있기는 하지만 흐~ 다시 한번 감사드립니다 빌더님.




빌더(TWx) 님이 쓰신 글 :
: 델파이.컨설턴트 님이 쓰신 글 :
: : 델파이 컨설턴트로 일하고 있는 사람입니다.
: : System.pas는 델파이와 C++빌더에서 심장 역할을 하는 중요한 코드입니다.
: : 개발자들이 참고하라고 소스만 공개해주고 있을 뿐입니다.
: : System.pas는 엠베카데로 내부 엔지니어들 아니면 컴파일 하는게 불가능 합니다.
: :
: :
: :
: :
: : cubase 님이 쓰신 글 :
: : : 안녕하세요
: : : RAD XE2 사용하고 있습니다. System.pas 소스 수정해서 컴파일해야 하는데 별짓 다해봐도 컴파일이 안되네요
: : :
: : : 처음에 System.pas 파일명으로 컴파일이 안되길래 파일명을 _System.pas로 하니까 컴파일이 되는듯 하더니
: : : 이번에는 이런 에러가 뜹니다
: : :
: : : [DCC Error] _System.pas(312): E2572 RTTI visibility set constant expression of type System.TRttiVisibility
: : : expected.
: : :
: : : 큐베이스라는 음악제작 프로그램에서 플럭인 만들려고 하는데 DSP 연산 처리에 문제가 있어서 찾아 보니까
: : : C++빌더에서 사용할 땐 코프로세서를 패치해줘야 한다고 하더군요.
: : :
: : : System.pas 라인넘버 31830 부분의 코드를
: : :
: : : [수정전]
: : :
: : :   _InitializeControlWord;
: : :   _FpuInit();
: : :
: : :   TTextRec(Input).Mode := fmClosed;
: : :   TTextRec(Output).Mode := fmClosed;
: : :   TTextRec(ErrOutput).Mode := fmClosed;
: : :
: : :
: : : [수정후]
: : :
: : :   _InitializeControlWord;
: : :   _FpuInit();
: : :
: : : int patch = 0x33f;
: : :
: : : OutputDebugString('co-processor patched...');
: : : asm
: : : {
: : :         FNINIT
: : :         FWAIT
: : :         FLDCW   [patch]
: : : }
: : :   TTextRec(Input).Mode := fmClosed;
: : :   TTextRec(Output).Mode := fmClosed;
: : :   TTextRec(ErrOutput).Mode := fmClosed;
: : :
: : : 저렇게 수정해서 컴파일 해야하는데 방법이 없을까요. 컴파일해서 VCL 라이브러리 파일을 바꿔서 사용해야
: : : 하는데 도움 좀 부탁드리겠습니다. OutputDebugString은 System.pas가 패치가 됐나 확인차 필요합니다.
: : : 고수님님들 도와주세요.
:
:
:
:
:
:
: 답변:
:
:
: 프로그래밍 처음 시작하는 학생 같았으면 굳이 이런 말 할 필요도 없었을 텐데, 한마디 안할 수가 없네요.
: 데놓고 자칭 "델파이.컨설턴트"라고 하는 사람이 그렇게 근거도 없는 글을 함부로 올려도 되는 겁니까.
: 누가 컴파일이 불가능하다고 합디까. --;
:
:
: : :
: : :   _InitializeControlWord;
: : :   _FpuInit();
: : :
: : : int patch = 0x33f;
: : :
: : : OutputDebugString('co-processor patched...');
: : : asm
: : : {
: : :         FNINIT
: : :         FWAIT
: : :         FLDCW   [patch]
: : : }
: : :   TTextRec(Input).Mode := fmClosed;
: : :   TTextRec(Output).Mode := fmClosed;
: : :   TTextRec(ErrOutput).Mode := fmClosed;
:
: 위와 같이 수정하면 Co-Processor를 초기화 해버려서 RTL 프레임웍을 사용하는 데 문제가 발생할 수 있습니다.
: (Default8087CW 라는 내부 변수가 사용되고 있음) 그래서 소스를 아래와 같은 식으로 수정해서 컴파일 했으니까
: 참고하세요.
:
:
: <System.pas> 수정된 소스
:
:   _InitializeControlWord;
:   _FpuInit();
: 
:   OutputDebugString('=====================================');
:   OutputDebugString('  [PATCH] : coprocessor patched....');
:   OutputDebugString('=====================================');
: 
:   // Patch CoProcessor 
:   asm
:         mov ax, Default8087CW
:         or  ax, $33F
:         mov Default8087CW, ax
:         fldcw  Default8087CW
:         fwait
:   end;
: 
: 
:   TTextRec(Input).Mode := fmClosed;
:   TTextRec(Output).Mode := fmClosed;
:   TTextRec(ErrOutput).Mode := fmClosed;
: 

:
: ...
:
: Embarcadero 에서 제공하는 라이브러리를 교체해 버릴 수도 있지만, 오히려 필요할 때만 링크해서 사용할 수 있게
: obj 파일로 관리하는게 더 편리할 겁니다. 소스를 수정해서 컴파일한 System.obj 파일을 첨부하니까 필요한 프로젝트
: 에 다음과 같이 링크만 걸어주면 됩니다.
:
:
:
: ...
:
: 컴파일해서 실행하면 RAD XE2 IDE 개발환경의 Event Log에 아래와 같은 식으로 OutputDebugString 메세지가
: 출력되는 것을 확인할 수 있을 겁니다.
:
:
:
: ...
:
: 질문에 언급되어있는 내용으로 봐선 Runtime Package대신 static 라이브러리를 사용하는 것 같은데. 맞죠.
: Dynamic RTL, Delphi RTL, Runtime Package 옵션 사용하지 말고 컴파일 하세요.
:
: ...

+ -

관련 글 리스트
66492 System.pas 컴파일이 왜 안되나요. RAD XE2 입니다 cubase 1324 2012/03/02
66493     Re:System.pas 컴파일은 불가능합니다 델파이.컨설턴트 1230 2012/03/02
66494         Re: System.pas 컴파일한거 참고하세요 빌더(TWx) 1763 2012/03/03
66497             Re:Re: 빌더님 잘되네요. 감사합니다 cubase 1464 2012/03/03
66498                 Re:Re:Re: 빌더님 잘되네요. 감사합니다 Lyn 1129 2012/03/03
66508                     Re: Lyn님이 델파이 컨설턴트 한다는 분인가요 cubase 1077 2012/03/05
66510                         Re:Re: Lyn님이 델파이 컨설턴트 한다는 분인가요 Lyn 1060 2012/03/05
66509                         Re:Re: Lyn님이 델파이 컨설턴트 한다는 분인가요 Intotheblue 1029 2012/03/05
66499                     Re:Re:Re:Re: 빌더님 잘되네요. 감사합니다 civilian 1143 2012/03/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.