2009-02-03 5 views
2

리소스 파일이없는 dll을 빌드하는 VC 6.0 프로젝트 (dsps)가 있습니다. 기존 프로젝트에 리소스를 추가하는 방법에 대한 아이디어가 있습니까?리소스 파일을 VC6 DLL에 추가

프로젝트가 곧 주요 릴리스로 예정되어 있으며 현재 해당 파일이없는 DLL에 파일 버전을 추가하려고합니다. dll은 출시 전에 다시 컴파일 될 것이므로이 프로젝트에서 상속 한 다른 모든 제품과 마찬가지로 이러한 dsp 파일을 만들려고 노력하고 있습니다 (파일 및 제품 버전 등을 가지고 있기 때문에 고객의 컴퓨터

하나의 대답 : * .rc 및 resource.h 파일 (다른 프로젝트에서 복사)을 만들고이를 VC6 파일보기의 ypur 프로젝트 소스 폴더에 추가하면 자동으로 리소스보기가 생성됩니다. 감사합니다. 당신의 도움들에 대해, 나에게 내가 필요로 포인터를 주었다.

+0

"Resource Hacker"http://www.angusj.com/resourcehacker/와 같은 도구를 사용하여 다시 컴파일하지 않고 기존 DLL에 리소스를 수정/추가 할 수 있습니다. – Ismael

답변

6

VERSIONINFO 블록을 DLL의 리소스 파일에 추가하기 만하면됩니다.

.rc 파일을 열고 "Insert/Resource .../Version"을 사용하면 일련의 기본값이있는 새 VERSIONINFO 리소스가 생성됩니다. 프로젝트에 아직 리소스 파일이 없으면 "파일/새 .../리소스 스크립트"를 사용하여 프로젝트를 추가 할 수 있습니다.

당신은 당신이 자신의 롤하려는 경우, 예를 들어 VERSIONINFO 블록은 MSDN page for VERSIONINFO에 기재되어 다음 VERSIONINFO 블록은 실제로 DLL에 버전을 추가 추가 않았다

#define VER_FILEVERSION    3,10,349,0 
#define VER_FILEVERSION_STR   "3.10.349.0\0" 

#define VER_PRODUCTVERSION   3,10,0,0 
#define VER_PRODUCTVERSION_STR  "3.10\0" 

#ifndef DEBUG 
#define VER_DEBUG     0 
#else 
#define VER_DEBUG     VS_FF_DEBUG 
#endif 

VS_VERSION_INFO VERSIONINFO 
FILEVERSION  VER_FILEVERSION 
PRODUCTVERSION VER_PRODUCTVERSION 
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 
FILEFLAGS  (VER_PRIVATEBUILD|VER_PRERELEASE|VER_DEBUG) 
FILEOS   VOS__WINDOWS32 
FILETYPE  VFT_DLL 
FILESUBTYPE  VFT2_UNKNOWN 
BEGIN 
    BLOCK "StringFileInfo" 
    BEGIN 
     BLOCK "040904E4" 
     BEGIN 
      VALUE "CompanyName",  VER_COMPANYNAME_STR 
      VALUE "FileDescription", VER_FILEDESCRIPTION_STR 
      VALUE "FileVersion",  VER_FILEVERSION_STR 
      VALUE "InternalName",  VER_INTERNALNAME_STR 
      VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR 
      VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR 
      VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR 
      VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR 
      VALUE "ProductName",  VER_PRODUCTNAME_STR 
      VALUE "ProductVersion", VER_PRODUCTVERSION_STR 
     END 
    END 

    BLOCK "VarFileInfo" 
    BEGIN 
     /* The following line should only be modified for localized versions.  */ 
     /* It consists of any number of WORD,WORD pairs, with each pair   */ 
     /* describing a language,codepage combination supported by the file.  */ 
     /*                  */ 
     /* For example, a file might have values "0x409,1252" indicating that it */ 
     /* supports English language (0x409) in the Windows ANSI codepage (1252). */ 

     VALUE "Translation", 0x409, 1252 

    END 
END 
+0

dll에는 리소스 파일이 없습니다! 프로젝트를 열면 클래스와 파일 뷰가 있지만 프로젝트 뷰에는 리소스 뷰도없고 * .rc도 없습니다 ... rc 파일을 만들어서 cpp처럼 추가 할 수 있습니까? – Patrick

+0

예 - 새로운 .rc 파일을 열었 으면 리소스의 루트 노드를 마우스 오른쪽 단추로 클릭하고 '삽입 ...'을 선택하여 많은 버전의 필드가 기본으로 설정된 새 버전 리소스를 추가 할 수 있습니다. –

0

당신은 항상 그렇지 않으면 프로젝트의 리소스 파일에 항목이 있어야합니다. dll을 자체 내에서 버전을 변경할 수 editbin /VERSION:#[.#]를 사용하여 시도 할 수 있습니다.

+0

고마워, 내가 무엇을 물어야하는지 분명히 도왔습니다 :) – Patrick

0

패트릭? 그리고 실제로 당신이 마우스를 바이너리 위로 가져 가면 버전 팝업이 나타나지 않거나 마우스 오른쪽 버튼으로 클릭> 속성> 세부 정보도 버전 지정이 없음을 의미합니다 ...

이것은 exe에 적합하지만 라이브러리에 versioninfo 블록을 추가하여 아무것도 표시되지 않습니다.

EB

좋아, 나는 오늘 나의 무지를 공유하는 것이라고 생각 ... 분명히이 버전은 정말 EXE (들) 및 DLL (들)에 대한 작동은 너무 빠른 정적 라이브러리를 사용하는 내 희망을 종료 버전 관리보기

+0

예, 속성 팝업에서 버전을 가져옵니다. – Patrick

관련 문제