2011-01-29 3 views
0

VS2010을 사용하여 일부 이미지가 png 형식으로 포함 된 C++ dll을 생성합니다. 내 개발자 컴퓨터에서 DLL을 유지하는 한이 작동합니다. dll을 다른 컴퓨터에 복사하려고하면 이미지가 누락됩니다. 프로젝트를 컴파일 할 때 app.res라는 파일이 빌드 디렉토리에 배치됩니다. 이 파일을 살펴보면 바이너리 인코딩 된 png가 들어있는 것 같습니다. 프로젝트 설정에는 "리소스"섹션에 "리소스 파일 이름"이라는 항목이 있습니다. 값은 "app.res"입니다. 그 때문에 내 리소스가 dll에 추가되었다고 가정합니다. 그러나, 그것은 apperently 그런 식으로 작동하지 않습니다. 누군가 여기에 무슨 문제가있을 수 있다는 아이디어가 있습니까? 누구든지 VS2010의 리소스 파일을 다루는 방법에 대한 좋은 지침을 알고 있습니까? Microsoft 문서는 그다지 도움이되지 못했습니다.리소스 파일 VS2010 : 제품을 복사 할 때 이미지가 누락됩니다.

+0

프로덕션 환경을 개발 컴퓨터의 다른 위치로 복사하여 테스트하십시오. 제대로 작동한다면 대상 컴퓨터가 png 이미지를 처리하지 못할 수도 있습니다. –

+1

그들은 모두 win7에서 실행되므로 문제가 png 파일 형식에 있다고 생각하지 않습니다. –

답변

2

링커는 .res 파일을 DLL에 포함합니다. 이것을 File + Open + File로 확인하고 DLL을 선택하면 임베디드 리소스를 검색 할 수 있습니다. DLL을 복사 할 때 임베디드 리소스를 사라지게하는 메카니즘이 없으면 단단하게 임베드됩니다.

+0

dll을 열 때 내가 설명한대로 모든 PNG가 들어있는 "PNG"필터가 나타납니다. 두 번 클릭하면 이미지의 내용을 볼 수 있습니다. 이것은 모든 것이 개발 기계에서 잘 작동하기 때문에 이상합니다. 그러나, 나는 dll에 파일을 임베딩하는 것과 관련된 문제가되어서는 안된다는 것을 알고 있습니다. –

+0

내 문제는 FindResourceA() 메서드 내에있는 것 같습니다. 내 32 비트 머신에서 hInstance는 null이지만, 64 비트 머신의 hInstance는 유효한 객체입니다. –

+0

호스트의 인터페이스 사양이 변경되었습니다. 그래서, 그것은 전혀 dll되지 않았습니다 –