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()
?
Stringtable對我很有好處。但如何在dll文件中創建字符串表?我發現這個:http://stackoverflow.com/questions/2248786/builder-c-creating-stringtable-in-resource但如果我編譯這我得到這個錯誤: 錯誤:'STRINGTABLE'沒有命名一個類型。我認爲它不足以在dll文件 – user1601401 2013-03-18 19:32:30
@ user1601401中,您需要使用_resource compiler_編譯資源,因爲它們不是C/C++的一部分。您可能需要從Microsoft下載完整的SDK(我認爲它們可以免費獲得)以獲得副本,或者您可能已經擁有SDK中的副本。在你的SDK文件夾樹中找一個名爲'rc.exe'的程序,就是這樣。 – 2013-03-18 19:35:32