我有一个VC ++项目,编译并生成.dll文件。 我创建了一个使用上面的vc ++ .dll文件的应用程序。 我可以静态地构建我的新应用程序.exe和.dll 我只想要一个.exe文件包含.dll文件(静态) 视觉工作室怎么可能?
谢谢, 尼尔
答案 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);
}