10

일반 MSVC에서는 매우 쉽게 할 수 있지만 VC++ Express에서는 쉽게 지원되지 않는 작업을하려고합니다.DLL의 버전 리소스가 오른쪽 클릭으로 표시되지 않습니다.

VC++ Express에는 리소스 편집기가 없습니다. 그래서 DLL 프로젝트에 version.rc라는 파일을 추가했습니다. 파일은 리소스 컴파일러에 의해 컴파일되고 최종 DLL에 추가되는 아래 내용을 포함합니다. 이 리소스는 Windows 탐색기에서 DLL을 마우스 오른쪽 단추로 클릭 할 때가 아니라 reshacker를 사용하여 DLL에서 볼 수 있습니다.

마우스 오른쪽 버튼을 클릭 할 때 내 RC 파일이 보이지 않게하려면 무엇이 있습니까? 에 자원을 변경

VS_VERSION_INFO VERSIONINFO 
FILEVERSION 1,0,0,1 
PRODUCTVERSION 1,0,0,1 
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", "something Application" 
      VALUE "FileVersion", "1, 0, 0, 1" 
      VALUE "InternalName", "something" 
      VALUE "LegalCopyright", "Copyright (C) 2008 Somebody" 
      VALUE "OriginalFilename", "something.exe" 
      VALUE "ProductName", "something Application" 
      VALUE "ProductVersion", "1, 0, 0, 1" 
     END 
    END 
    BLOCK "VarFileInfo" 
    BEGIN 
     VALUE "Translation", 0x409, 1200 
    END 
END 

답변

9

올바른 솔루션은 .rc 파일의 상단에 추가하는 것입니다

#include <windows.h> 
+4

'#include '이면 충분합니다. –

3

시도 :

FILEFLAGSMASK 0x3fL 

BLOCK "040004e4" 

VALUE "Translation", 0x400, 1252 
+0

그때 이미 버전 리소스에 연결하여 libs와 어떤 밖으로 찾을 수 있습니다. 당신은 이미 버전 리소스에 링크하고있다. (이제 어느 파일과 어떤 파일/lib가 이것을하는지 알아야한다.) – Stefan

+0

증분 링크를 비활성화하십시오 : 프로젝트 속성 -> 링커 -> 공통 -> 증분 연결 활성화 또는 다시 작성하면 도움이 될 수도 있습니다. – Stefan

+0

질문을 수정하여 내 의견을 삭제했습니다. –

15

내 자원 사이에 하나 개 차이 (reshacker 사용)를 참조 할 수 있었다 장비에 나타나는 리소스 ht-click을 클릭하면 리소스 이름이 나타납니다. 그래서 나는 VS_VERSION_INFO를 1로 바꿨다. 이제는 리소스를 마우스 오른쪽 버튼으로 볼 수 있습니다.

1 VERSIONINFO 
FILEVERSION 1,0,0,1 
PRODUCTVERSION 1,0,0,1 
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", "something Application" 
      VALUE "FileVersion", "1, 0, 0, 1" 
      VALUE "InternalName", "something" 
      VALUE "LegalCopyright", "Copyright (C) 2008 Somebody" 
      VALUE "OriginalFilename", "something.exe" 
      VALUE "ProductName", "something Application" 
      VALUE "ProductVersion", "1, 0, 0, 1" 
     END 
    END 
    BLOCK "VarFileInfo" 
    BEGIN 
     VALUE "Translation", 0x409, 1200 
    END 
END 
+2

대단한 캐치! 나는 방금 같은 일을했다. 아마 (또는 광산) 리소스 스크립트에서 포함되지 않는 다른 곳에서 VS_VERSION_INFO 기호가 정의됩니다. –

+1

1로 정의하고 이제 작동합니다. 고맙습니다! 나는이 대답을 더 일찍 찾았 으면 좋겠다. –

+0

David 자신의 질문에 대한 답변이 맞습니다! 그리고 Visual Studio를 사용하지 않고 리소스 파일을 만들 때 특히 유용합니다. 아마 그 때문에 Jim Crafton과 저는 똑같은 문제를 겪었습니다. David 감사합니다! – user1593842

관련 문제