2013-03-18 92 views
1

我使用eclipse和mingw編譯器(C++)。 我想創建一個包含大量字符串的dll文件。 之後,我想與LoadString()打電話讀取的字符串(http://msdn.microsoft.com/en-us/library/windows/desktop/ms647486(v=vs.85).aspx從dll獲取字符串C++

我的dll文件:

#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如何使用字符串表。我相信你會在微軟找到文檔和例子,如果沒有的話,還可以在谷歌找到。

哦,你的DLL不是必需的只是資源,我從你的評論「我想創建一個包含很多字符串的dll文件」。如果你的DLL也包含代碼,它實際上更容易(也許更簡單)。然後你想搜索添加資源到一個DLL和類似的東西。

+0

Stringtable對我很有好處。但如何在dll文件中創建字符串表?我發現這個:http://stackoverflow.com/questions/2248786/builder-c-creating-stringtable-in-resource但如果我編譯這我得到這個錯誤: 錯誤:'STRINGTABLE'沒有命名一個類型。我認爲它不足以在dll文件 – user1601401 2013-03-18 19:32:30

+1

@ user1601401中,您需要使用_resource compiler_編譯資源,因爲它們不是C/C++的一部分。您可能需要從Microsoft下載完整的SDK(我認爲它們可以免費獲得)以獲得副本,或者您可能已經擁有SDK中的副本。在你的SDK文件夾樹中找一個名爲'rc.exe'的程序,就是這樣。 – 2013-03-18 19:35:32