resource dll
resource dll
resource dll
많은 세심한 사람들이 VC의 통합 컴파일 환경 (IDE) 에서 자원을 선택하고, 위에서 마우스 오른쪽 단추를 누르고, Insert Copy를 선택하고, 다른 Condition을 선택할 수 있는 기능이 있다는 것을 알아차렸을 것이다.그러나 나는 VC를 십여 년 동안 사용해 본 적이 없고 그가 무엇을 하는지 몰랐다.며칠 전에 어떤 네티즌이 나에게 이 물건이 무엇이냐고 묻고서야 연구하기로 결심했다.자세히 연구한 후에야 그가 자원 DLL에 쓰인다는 것을 발견하였다.
국제화 해결 방안을 제공하는 프로그램 디자이너에게 사용자 지역 설정에 따라 대응하는 언어 인터페이스를 보여주는 것은 매우 의미가 있을 것이다.본고의 목적은 자원 dll을 하지 않은 사람들이 이익을 얻을 수 있도록 step by step에 대한 조언을 제공하는 것이다.나도 자원 dll을 해 본 적이 없기 때문에 이것을 연구하는 데 반나절밖에 걸리지 않기 때문에 만약 무슨 잘못이 있으면 정상이다.잘못된 친구를 발견하면 직접 메일로 보내주세요.당신의 도움에 대해 저는 매우 감사할 것입니다.
주 공정의 요구 자원 dll을 사용하여 국제화를 실현해야 하는 프로젝트에 대해 우리는 사용자에게 보여주는 모든 인터페이스 요소가 반드시 자원에서 얻어야 한다고 보장해야 한다.이것은 주로 명목이 많은 문자열을 가리킨다.프로그램 설계자는 AfxMessageBox로 정보를 표시하는 것을 좋아한다.단일 언어 상황에서 이것은 당연히 문제가 없다.그러나 다중 언어 환경이라면 이 디스플레이 정보가 현재 지역 설정과 일치하는 것을 제어하기 어렵다.또한 주 프로젝트의 설계는 자원 dll을 만들기 전에 완성해야 한다.이렇게 하는 이유는 자원 dll 디자인이 매우 간단하고 시간이 얼마 걸리지 않기 때문이다.만약 자원의 수정이 코드에 정확하게 반영되지 않는다면, 때때로 프로그램은 영문도 모른 채 붕괴될 수도 있고, 그 원인을 찾는 데 오랜 시간이 걸릴 수도 있다.나의 한 예는 다음과 같다. 나는 아이콘에 65535색의 그림을 삽입했는데 프로그램이 줄곧 일어나지 못했는데, 나중에 아주 오랫동안 찾다가 비로소 원인을 찾았다.만약에 우리가 일반적인 방식으로 주요 공사를 설계하고 테스트를 통해 그가 정상적으로 일하고 있음을 증명한다면 이때 자원 dll을 다시 하면 두 공사 사이의 디버깅과 원인을 찾는 것을 피할 수 있다.실제로 증량 개발 상황에 대해 이런 자원 dll과 메인 프로젝트가 병존하는 상황은 피하기 어려울 수 있으므로 이때 자원을 증감하고 삭제하는 데 특히 조심해야 오류를 초래하지 않는다.단순화를 위해 다음과 같이 기본 대화상자 프로젝트를 생성하여 테스트를 수행합니다.
자원 dll 프로젝트 만들기
다음 절차에 따라 리소스 DLL을 생성할 수 있습니다.
마스터 엔지니어링 수정
리소스 dll을 사용하여 리소스 정보를 제공할 계획이므로 기본 프로젝트를 다음과 같이 수정해야 합니다.
LANGID id = ::GetUserDefaultLangID();switch (id) {case 0x804:/중국어 #ifdef DEBUG m hResource = LoadLibrry(T는 "D:\projects\testdll\DbugCA\testdllc.dlllll"));;; #else m hReReReReReResource=LoadLibrrrrrrry(T(T T:::::::::::: {{{{{{{{{{{{{{{xxx8044444444444444/////////중국어 중국어 중국어 중국어 중국어 시시시시시fffffffffffLoadLibrary(T("D:\projects\\testdll\DebugEN\testdllend.dll");#else m hResource = LoadLibrary(_T("D:\\projects\\testdll\\ReleaseCN\\testdllenr.dll"));#endif } if(m_hResource == NULL) { return FALSE; }else{ AfxSetResourceHandle((HINSTANCE)m_hResource); }
이후에 간단한 디버깅을 좀 더 하면 될 것 같다.구체적인 디버깅은 이미 내가 이 글에서 토론할 수 있는 범위를 넘어섰다.
http://ronaldyan.spaces.msn.com/blog/cns!FA58BC446FBB14B9!107.entry
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.