|
사용하는 빌더 버전이 xe2 이상인 듯 싶네요.
우선 원인은 이렇습니다.
TimeSeparator: Char deprecated 'Use FormatSettings.TimeSeparator';
ShortMonthNames: array[1..12] of string deprecated 'Use FormatSettings.ShortMonthNames';
xe2 이전버전에서는 sysutils 유닛에 위와 같이 선언되어 있었습니다.
물론 디프리케이트로 선언 되어 있고 주석으로 추천하는 형식이 있네요.
xe2 부터 제거가 된 듯 합니다. 이 부분은 디프리케이트 될 것이라고 했으니......
여기서 문제해결을 위한 방법은 2가지입니다.
빌더 버전을 xe로 낮추느냐 아니면 시냅스 소스를 수정하는냐.
버전을 XE 로 낮추는 것도 좋은 생각입니다.
XE2 부터 모바일 지원을 위해서 런타임 라이브러리부터 뜯어 고치고 있고 IDE도 상당히 불안한 모습을 보이고 있습니다.
모바일 개발을 고려치 않고 대상 플랫폼을 윈도우만 고려한다면 XE2 이상이나 XE 나 큰 차이가 없습니다. 라이브 바인딩 같은 기능이 있기는 하지만 ide 안정성을 포기할 만큼 메리트는 없습니다.
그럼에도 xe2 이상 버전을 사용해야 한다면 소스를 수정해야 합니다.
즉 TimeSeparator, ShortMonthNames 을 사용하는 곳을 FormatSettings.TimeSeparator 와 FormatSettings.ShortMonthNames 로 수정하고 컴파일을 진행하면 됩니다.
네로 님이 쓰신 글 :
: 다시 미궁에 빠졌네요... hpp, obj는 만들었지만 ㅠㅠ
: 아래 조언주신대로 프로젝트에 add 추가해서 해봤는데 아래와 같은 에러가 뜨네요.. 물론 path 경로는 모두 추가했구요.
:
: [DCC Error]synautil.pas(609):E2003 Undeclared indentifier:'TimeSeparator'
: [DCC Error]synautil.pas(2062):E2003 Undeclared indentifier:'ShortMontNames'
: [DCC Fatal Error]blcksock.pas(106):F2063 Could not ompile used unit ;synautil.pas'
:
: 정영훈 님이 쓰신 글 :
: : 프로젝트에 필요한 pas 파일을 add 해서 프로젝트에 추가하면 됩니다.(복사가 아닙니다.)
: : 번거롭게 커맨드라인에서 컴파일안하셔도 됩니다.
: :
: : 네로 님이 쓰신 글 :
: : : 다운받은 synapse40 폴더를 기준으로 커멘드라인에서 컴파일하니 .hpp, .obj들이 몇개 생겼네요
: : : 지금까지 내가 원하는 *.pas만 프로젝트 폴더에 복사해서 하니 안되었었나 봅니다.
: : : 이제부터는 프로젝트파일에 .hpp와 .obj를 link하여 활용하는 것을 해야겠네요^^
: : : 감사합니다.
: : :
: : : 정영훈 님이 쓰신 글 :
: : : : 아래 질문에 보니 시냅스쪽의 샘플을 컴포넌트로 잘못 알고 계신 것 같습니다.
: : : : 질문자께서 설치가 안된다 하시는 것은 컴포넌트가 아니라 시냅스 샘플입니다.
: : : :
: : : : 해당 dcu 혹은 pas 가 다 제공되지 않는다면 델파이로도 컴파일이 안됩니다.
: : : :
: : : : 또한...링크의 샘플을 보니...과거 버전기반인 듯 하네요..
: : : :
: : : : SendTrap 펑션은 snmpsend 유닛의 TSNMPSend 클래스에 있습니다.
: : : :
: : : : 시냅스 컴포넌트면 원하시는 작업을 하실 수 있을 겁니다.
: : : :
: : : :
: : : : 정영훈 님이 쓰신 글 :
: : : : : 디펜던시가 있는 pas 파일을 알아서 컴파일 합니다...
: : : : : 어떤식으로 테스트를 진행하는지 알 수 없으나 pas들이 있는 경로를 라이브러리 패스 경로로 추가하고 컴파일하세요
: : : : :
: : : : : 네로 님이 쓰신 글 :
: : : : : : 답변 감사드립니다.
: : : : : : 당연히 그렇게도 해봤죠 ^^
: : : : : : add로 pas파일한 후 컴파일하면 메시지 창에 아래와 같은 에러가 뜹니다.
: : : : : :
: : : : : : [DCC Fatal Error] sndstrap.pas(44):F1026 File not found:'SNMPTrap.dcu'
: : : : : :
: : : : : : 물론 어디에도 SNMPTrap.dcu라는 파일은 전체 폴더 검색시 존재하지 않는 파일입니다.
: : : : : : 커맨드라인에서 할때와 같은 내용에 에러메시지인것 같아요 ㅠㅠ
: : : : : : 참고로 사용툴은 c++빌더 xe3입니다.
: : : : : :
: : : : : :
: : : : : : 정영훈 님이 쓰신 글 :
: : : : : : : 델파이와 c++빌더는 obj 레벨에서 호환이 됩니다.
: : : : : : : 즉 pas 로 부터 obj, hpp 를 얻을 수 있습니다.
: : : : : : :
: : : : : : : 빌더안에 델파이 컴파일러(dcc32)가 함께 배포되기 때문인데요
: : : : : : : dcc32로 커맨드라인에서 할 필요는 없습니다.
: : : : : : : 단순히 프로젝트에 pas 파일을 등록하고 컴파일하면 알아서 hpp를 생성하고 obj로 만들어 링크까지 합니다.
: : : : : : :
: : : : : : : 프로젝트에서 우측 마우스 버튼 클릭하여 add 로 pas파일을 프로젝트에 등록하면 됩니다.
: : : : : : : 그 후 빌드하면 됩니다.
: : : : : : :
: : : : : : : (빌더의 강력함이죠 c++과 델파이를 한 프로젝트에서 사용할 수 있습니다.)
: : : : : : :
: : : : : : : 네로 님이 쓰신 글 :
: : : : : : : : 델파이용 *.pas를 다운받은 후 빌더에서 사용할려 합니다.
: : : : : : : : 아래와 같이 델파이 컴파일러를 돌리면 된다하는데요.. 아래와 같은 에러가 생기네요
: : : : : : : :
: : : : : : : : c:\dcc32.exe -jphw snmptrap.pas
: : : : : : : : snmptrap.pas(7) Fatal: F1026 File not found: 'SNMPSend.dcu'
: : : : : : : :
: : : : : : : : snmptrap.pas 파일을 열어보면 아래와 같은 코드가 있는데 파일검색하면 안보이네요
: : : : : : : : /////////////
: : : : : : : : implementation
: : : : : : : : uses SNMPTrap, ASN1Util;
: : : : : : : : ////////////////
: : : : : : : :
: : : : : : : : 델파이를 설치한 후 빌더용 파일을 생성해야 되는지.....
: : : : : : : :
|