如何在我的.exe中(静态)构建VC ++ .dll文件?

时间:2010-08-09 17:32:42

标签: visual-c++

我有一个VC ++项目,编译并生成.dll文件。 我创建了一个使用上面的vc ++ .dll文件的应用程序。 我可以静态地构建我的新应用程序.exe和.dll 我只想要一个.exe文件包含.dll文件(静态) 视觉工作室怎么可能?

谢谢, 尼尔

1 个答案:

答案 0 :(得分:1)

如果你只想将它嵌入EXE中,为什么还要有DLL呢?

[剪辑,编辑]

因此,要执行此操作,您只需将DLL文件添加为资源,并使用FindResource / LoadResource将其解压缩到某处。如果要加载DLL,则需要将其写入文件系统。这是我在项目中用来从资源加载文本文件的函数(C ++)。您应该可以根据自己的需要轻松修改它。注意这里没有错误检查;它只是向您展示基本想法。

std::string LoadTextFileResource(HINSTANCE hInstance, LPCTSTR szResName, LPCTSTR szResType)
{
    HRSRC hrsrc=FindResource(hInstance, szResName, szResType);
    if(!hrsrc) return L"";
    HGLOBAL hg1 = LoadResource(hInstance, hrsrc);
    DWORD sz = SizeofResource(hInstance, hrsrc);
    void* ptr1 = LockResource(hg1);

    // assume the encoding is ASCII.
    return std::string((const char*)ptr1, sz);
}