从dll c ++中获取字符串

时间:2013-03-18 19:17:12

标签: c++ string dll

我使用eclipse和mingw compilier(c ++)。 我想创建一个包含很多字符串的dll文件。 之后,我想与LoadString()联系,阅读字符串(http://msdn.microsoft.com/en-us/library/windows/desktop/ms647486(v=vs.85).aspx

我的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, "Hello@0");
            if(Hello == NULL){
                //LoadString();
                MessageBox(HWND_DESKTOP, "Hello is NULL", "Message", MB_OK);
            }
            else{
                Hello();
            }
        }

        return 0;
    }

如何创建字符串?以及如何使用LoadString()拨打电话?

1 个答案:

答案 0 :(得分:3)

我想您想了解 resources ,以便您可以构建包含字符串表的仅资源DLL。尝试搜索您引用的MSDN站点,例如资源编译器,或者如何构建仅资源DLL 如何使用字符串表。我相信你会在微软找到文档和示例,如果没有,可以在谷歌找到。

哦,你的DLL不是必需只是资源,我从你的评论中得到了“我想创建一个包含很多字符串的dll文件。”如果您的DLL也包含代码,那么实际上甚至更容易(可能更直接)。然后,您需要搜索向DLL添加资源等等。