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