나는 응용 프로그램을 만들었고 두 개의 separete build를 만들어야한다. 하나는 32 비트 용이고 다른 하나는 64 비트 용입니다. 파일 속성에서 원래 파일 이름과 같은 몇 가지 설명을 포함하고 싶습니다. 여기서 아키텍처 (x64 또는 x86)를 설정하고 싶습니다. 생각보다 어렵거나 뭔가 잘못하고있는 것처럼 보입니다.이 매크로가 잘못 평가되는 이유는 무엇입니까?
#ifdef _WIN64
#define ARCHIT "1"
#else
#define ARCHIT "2"
#endif
이 매크로는 항상 2를 반환합니다. 잘못된 것이 있습니까? 내가 #pragma message
을 넣기 전에 define
이 올바르게 표시되면 올바르게 평가되지만 어떻게 든 파일 속성에 쓰여지는 텍스트는 항상 2가됩니다.
나를 도와 줄 수 있습니까?
감사합니다.
는업데이트 :
이것은 내가 그것을 사용하는 방법입니다 : 코멘트에서
#define VER_FILEVERSION 1,0,0,0
#define VER_FILEVERSION_STR "1.0.0.0\0"
#define VER_PRODUCTVERSION 1,0,0,0
#define VER_PRODUCTVERSION_STR "1.0.0.0\0"
1 VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "My Description"
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", BASENAME
VALUE "LegalCopyright", "My company"
VALUE "OriginalFilename", ARCHIT
VALUE "ProductName", BASENAME
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
매크로는 아무것도 "반환"하지 않습니다. 어떻게 사용하고 있는지 보여주세요. 여러분의 관찰을 보여주는 두 줄의 main()입니다. – WhozCraig
@WhozCraig. 내 질문을 업데이트했습니다. 이것은 내가 그것을 사용하는 방법입니다. – kampi
BEGIN, BLOCK, END, VALUE? 이 태그가 C 인 이유는 무엇입니까? – Jens