실행중인 응용 프로그램의 버전에 따라 리소스 파일에서 코드를 동적으로 변경할 수 있기를 원합니다. 예를 들어, about 메뉴가 있습니다. 전 메뉴 지시문에 전 처리기 지시문을 기반으로 다른 설명이 있기를 바랍니다. 내가 가진 문제는 코드를 추가 할 수 있다는 것입니다.하지만 리소스 파일을 편집하여 저장하면 .aps 파일이 내 전 처리기 지시문을 덮어 씁니다. 이 문제를 어떻게 해결할 수 있습니까? 아래의 코드는 내 리소스 스크립트에 포함시키려는 예제입니다.MFC .rc 파일의 MENU 내에서 전 처리기 지시문을 사용하는 방법은 무엇입니까?
IDR_EXAMPLE_MENU MENU
BEGIN
/*
Other Menu items
*/
POPUP "&Help"
BEGIN
MENUITEM "&Help Topics", ID_HELP_FINDER
MENUITEM SEPARATOR
#ifdef TEST_APP
MENUITEM "&About TEST...", ID_APP_ABOUT
#else
MENUITEM "&About RELEASE...", ID_APP_ABOUT
#endif
END
END
내가 테스트 버전을 실행하고 있다면 나는 메뉴 항목에서 "TEST"를 표시하고 그 경우 릴리스 버전은 내가 같은 코드를 추가 할 수있는 방법 "릴리스 정보"표시를하고 싶은 그것을 싶습니다 .aps 파일을 .rc 파일을 저장할 때 전 처리기 지시문을 덮어 쓰지 않고도 내 리소스 파일에 저장할 수 있습니까?
는편집 : This explains how files are affected by resource editing.
당신은 ID_APP_ABOUTMENU' permanantly "... & RELEASE에 대해"두 개의 서로 다른 명령'MENUITEM "& TEST에 대해 ...", ID_APP_ABOUTTEST'와'MENUITEM을 가질 수와 해당 동적 중 하나를 삭제' OnUpdate' 핸들러. 매우 간단합니다. 이것이 옵션인지 알려 주시면보다 완벽한 답변을 작성하겠습니다. 그렇게하면 VS 리소스 편집기를 사용할 때 문제가되는 선처리 프로세서 명령 사용을 완전히 피할 수 있습니다. –
이것은 가능한 해결책 중 하나 일 수 있습니다. 대부분의 코드 기반은 전 처리기를 사용하므로 다른 곳에서 수행되는 방식이기 때문에 그렇게 할 수 있습니다. 나는 당신이 하나를 쓰고 싶다면 완전한 답을보기를 호기심있다. – sebenalern
방금 A의 해결책을 받아 들였습니다. 이전 의견에서 제안한 답변에 여전히 관심이 있다면 알려 주시기 바랍니다. –