2009-08-19 3 views
15

나는 이미 컴파일 된 .res 파일 대신 .rc 파일을 참조하여 프로젝트의 리소스 파일을 제안한 몇 년 전에 기사 나 게시물을 읽었습니다. 파일을 사용하여 프로젝트 빌드 프로세스의 일부로 자원을 빌드하십시오..RC 파일보다는 .RC 파일로 프로젝트에 리소스 파일 포함하기

나는 현재 brcc32 glyphs.rc 명령을 사용하여 컴파일 한 glyphs.rc 파일이 있습니다. 프로젝트 파일에는 {$ R Glyphs.res}라는 문장이 있습니다.

나는

{$R Glyphs.rc} 

처럼 뭔가로 변경하여이 문제를 단순화하기 좋아하지만 구문 확실치 것입니다. 내가 {$R Glyphs.rc}를 사용하려고 할 때 오류`

[DCC Error] E2161 Error: RLINK32: Unsupported 16bit resource in file "Glyphs.rc". 

델파이 2007 가능한이 방법인가 얻을?

답변

23

"프로젝트> 프로젝트에 추가"메뉴 항목을 통해 프로젝트에 rc 파일을 추가하기 만하면됩니다. 그러면 TOndrej links to 게시글에서 {$R 'myres.res' 'myres.rc'} 행이 생성됩니다.

6

고해상도에게 파일을 처리 할 수 ​​있지만, 당신이의 변형을 사용하여 리소스 컴파일러를 호출하도록 컴파일러에 지시하고 고해상도에게 파일을 생성 할 수있는 RC 스크립트를 컴파일하고 연결할 수 링커 $ R/$ RESOURCE 지시어. 귀하의 경우에는

(2007 델파이) 만 변화를 필요로한다 :이, 자신의 작업 프로젝트에 RC를 추가하지 않을 경우

{$r glyphs.res} 

{$r glyphs.res glyphs.rc} 

에 있습니다. 델파이의 다른 버전에서는이 파일 이름 주위에 따옴표를해야 할 수 있습니다

{$r 'glyphs.res' 'glyphs.rc'} 

참고 : 당신은 여전히 ​​ 필요가 고해상도에게 파일을 식별 할 수 를 수행 차이가 추가로 을 식별 할 수있는 인 rc 파일을 컴파일하여 처음에 res 파일을 생성해야합니다.

이 문제에 대한 지원이 일부 수정되었습니다. 프로젝트에 RC를 추가하는 것이 항상 저장되고 닫히고 다시 열릴 때까지 프로젝트에서 항상 감지되는 것은 아닙니다 프로젝트 (예를 들어, XE4의 경우에 해당하지만 다른 버전에도 적용될 수 있음).

더 최근의 버전에서는 단순히 $R 'file.res' 'file.rc' 선언을 DPR에 추가하면 프로젝트 관리자가 프로젝트의 일부로 참조 된 RC 파일을 식별하지만 이전 버전에서는 그렇지 않습니다. 다시 말하지만,이 부분에서 땜질을하는 부분은 보인다.

XE4는 일반적으로 안정성면에서 견고하지만 IDE를 닫을 때 RC 파일을 추가/제거하면 액세스 위반이 발생하는 것으로 보입니다. IDE를 다시 열면 정상적인 안정성이 복원 된 것 같고 계획. 즉 프로젝트에 RC 파일이 있다는 사실 만이 아니라 문제를 일으키는 것으로 보이는 RC 파일을 추가/제거하는 것입니다.

+0

Jolyon, 저는 이것이 (MSBuild 로의 전환으로 인해) 일부 버전에서 작업을 중단했다고 생각합니다. 어쨌든 델파이 XE2의 복사본에서 더 이상 작동하지 않습니다. –

+0

호기심 - 여전히 내 XE2에서 잘 작동하는 것 같습니다. – Deltics

+0

$ R 지시어 만 변경하면 XE2에서 작동하지 않습니다. .rc 파일은 Project | Add to Project로 프로젝트에 추가해야합니다. –

2

나는 동일한 문제가있어서 새로운 것을 발견했습니다.

{$R glyphs.res glyphs.rc} 

이것은 미리 빌드에서 glyphs.res를 glyphs.res로 컴파일하기위한 코드입니다. (Delphi XE4에서 작동)

그러나이 코드는 * .dpr 파일에있는 경우에만 작동합니다! 이 코드를 * .pas 파일에 넣으면 처음에는 {$ R glyphs.res}처럼 동작하고 RC 파일은 컴파일되지 않습니다. 델파이의 버그 일 수 있습니다.

+0

AFAIR 또한 dpk (패키지)에서 작동하지 않는다. 컴파일러가 적어도 이것에 대해 경고한다면 그것은 좋을 것입니다. –

0

내 응용 프로그램에서 mainicon에서 제거 할 수없는, 그래서는 trapgate.rc 파일을 사용 src 디렉토리에서 해당 파일을 넣어 만든 :

MAINICON icon ".\Icon\MAINICON.ico" 
5012 icon ".\Icon\5012.ico" 

는 그 다음 RC A에서 만드는 BRCC32 사용을 RES 파일, 빌드 및 올바른 아이콘을했다. 당신은 또한 거기에 더 많은 아이콘을 넣어 내가 makeres.bat 에 선을 추가 한 이유는 그게 전부를 전환 할 수는 다음과 같습니다 : 그래서

brcc32 folders.rc -fofolders.res 
brcc32 main.rc -fomain.res 
brcc32 xOutline.rc -foxOutline.res 
brcc32 xSpin.rc -foxSpin.res 
brcc32 credits.rc -focredits.res 
brcc32 licence.rc -folicence.res 
brcc32 trapgate.rc -fotrapgate.res <-- this is my icon file 

당신이 폴더의 아이콘을 변경하는 경우에도 무엇 이건 .. \ 아이콘 당연히 mainicon.ico 및 5012.ico와 같은 올바른 이름을 가지고 있는지 확인하십시오.

Delphi 7 자체에서 아이콘을 변경할 수없는 사람에게 도움이 되었길 바랍니다.

0

Delphi 2007에서이 작업을 시도했지만 작동하지 않았습니다. 내가 선을 넣어했다

"{$의 R의 glyphs.res의 glyphs.rc}"바로 IDE가 거기에두고 "{$의 R * .RES}"라인 위의 내 프로젝트 파일에

하지만, IDE를 사용하여 rc 파일을 추가하면 "사용"줄 위에 놓은 다음 작동합니다.