2013-03-18 2 views
1

이클립스와 mingw compilier (C++)를 사용합니다. 많은 문자열이 들어있는 dll 파일을 만들고 싶습니다. 그 후 나는 (http://msdn.microsoft.com/en-us/library/windows/desktop/ms647486(v=vs.85).aspx)dll에서 문자열 가져 오기 C++

내 DLL 파일 문자열을 읽을 수 LoadString()와 전화 싶습니다

#define WIN32_LEAN_AND_MEAN 
#define DLL_FUNC extern "C" __declspec(dllexport) 

DLL_FUNC int __stdcall Hello() { 

    return 0; 

} 

내 CPP 파일 :

#include <windows.h> 
#include <stdio.h> 

    int main() { 

    typedef int (__stdcall *HelloProc)(); 

     HMODULE hdll = LoadLibrary("HelloWorld.dll"); 
     if(hdll == NULL){ 
      MessageBox(HWND_DESKTOP, "Wrong dll path", "Message", MB_OK); 
     } 
     else { 
      typedef int (__stdcall *HelloProc)(); 

      HelloProc Hello = (HelloProc)GetProcAddress(hdll, "[email protected]"); 
      if(Hello == NULL){ 
       //LoadString(); 
       MessageBox(HWND_DESKTOP, "Hello is NULL", "Message", MB_OK); 
      } 
      else{ 
       Hello(); 
      } 
     } 

     return 0; 
    } 

가 어떻게 문자열을 만들려면 어떻게해야합니까? LoadString()으로 전화하는 방법은 무엇입니까?

답변

3

리소스에 대한 정보를 읽고 문자열 테이블을 포함하는 리소스 전용 DLL을 빌드 할 수 있습니다. 리소스 컴파일러리소스 전용 DLL을 만드는 방법문자열 테이블 사용 방법과 같은 항목을 참조한 MSDN 사이트를 검색해보십시오. 저는 Microsoft에서 설명서와 예제를 찾을 것이며, 그렇지 않은 경우 Google에서 찾을 수있을 것이라고 확신합니다.

오, DLL이 이 필요하지 않습니다.은 리소스로만 사용됩니다. "나는 많은 문자열이 포함 된 dll 파일을 만들고 싶습니다." DLL에 코드가 포함되는 경우 실제로 더 쉽습니다 (아마도 ). 그런 다음 을 검색하여과 같은 리소스를 추가하려고합니다.

+0

Stringtable이 나에게 도움이 될 것입니다. 하지만 dll 파일에 문자열 테이블을 만드는 방법은? 나는 이것을 찾았 : http://stackoverflow.com/questions/2248786/builder-c-creating-stringtable-in-resource하지만이 컴파일하면이 오류가 발생합니다. 오류 : 'STRINGTABLE'형식을 지정하지 않습니다. 나는 dll 파일에 충분하지 않다고 생각한다. – user1601401

+1

@ user1601401 그들은 C/C++의 일부가 아니기 때문에 _resource 컴파일러로 리소스를 컴파일해야한다. Microsoft에서 제공하는 전체 SDK (무료로 제공되는 것 같습니다)를 다운로드 받아야하거나 이미 갖고있는 SDK에 사본이 필요할 수 있습니다. SDK 폴더 트리에서'rc.exe'라는 이름의 프로그램을 찾으십시오. –

관련 문제