none
다국어 DLL을 만들었는데, 개발 컴퓨터에서는 잘 나오지만 테스트PC에서는 스트링이 표시가 안됩니다. RRS feed

  • 질문

  • String Table만 존재하는 다국어 DLL(한국,일본,영어 버전)을 만들었고 LoadLibrary를 통해 가져왔습니다.

    개발중인 PC에서 테스트할 때엔 잘 나오는데 테스트PC에서 테스트를 하면 스트링이 아예 표시가 안됩니다. 제가 생각하기로는 DLL이 EXE에 포함되지 않는 것 같은데, DLL은 EXE와 같은 경로에 배포되며 소스코드가 있는 부분에도 DLL을 복사하여 위치시켰습니다. 또한 프로젝트 속성에서 정적 라이브러리에서 MFC 사용과 런타임 라이브러리 - 다중스레드로 설정하였습니다.

    어떤 것이 문제일까요 ? 

    DLL이 따로 헤더 파일은 없을테고,, include 시켜줘야 하는 건 아닐텐데 ..

    혹은 프로젝트 속성에서 DLL의 경로를 따로 추가해주어야 하나요 ?

    2015년 6월 29일 월요일 오후 12:47

답변

  • LoadLibrary에서 아래 예제와 같이 절대 경로를 따로 주신 것이 없다면 exe 파일이 위치한 곳에 있으면 됩니다.
    LoadLibrary( _T("kor_resource.dll"));

    문의 내용에 이미 DLL은 EXE와 같은 경로에 배포되며 이렇게 작업해 주신것으로 보입니다.
    다음 두 문서를 참고하셔서 LoadLibrary 함수에서 오류가 나는 것인지를 체크 하시기 바랍니다.
    어디에서 문제가 발생하는지는 문제가 발생하는 test PC에서 디버깅하셔서 문제를 해결하시기 바랍니다.

    HMODULE hModule = LoadLibrary( _T("kor_resource.dll"));

    https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175(v=vs.85).aspx
    LoadLibrary function

    https://support.microsoft.com/en-us/kb/142814
    INFO: Diagnosing "Error in loading DLL" with LoadLibrary

    • 답변으로 표시됨 SMPark82 2015년 8월 13일 목요일 오전 1:10
    2015년 7월 30일 목요일 오전 3:48