C++Winapi在.exe文件中包含DLL
C++ Winapi Including DLL in the .exe file
我使用的是MYSQL库和libmysql.lib/.dll。没有libmysql.dll,我的程序就无法运行当我试图在没有dll的情况下运行我的项目时,我会收到错误消息。我基本上想做的是把dll放在我的.exe文件中。使用该dll构建.exe文件,并让程序自己读取。我的意思是,把程序交给里面有dll的人。有可能吗?
我试过这个部分:在MFC C++EXE中嵌入DLL?但是程序仍然要求dll。。(但我确实看到.exe的大小已经更改),所以dll已经添加。但是程序仍然要求libmysql.dll。。重点是在.exe文件中使用它。。谢谢
如果在编译时静态链接到DLL,则无法完成您所要求的操作。您需要在运行时动态链接到DLL,方法是显式调用LoadLibrary()
和GetProcAddress()
以直接访问DLL函数,或者使用编译器的延迟加载功能(在内部使用LoadLibrary()
和GetProcAddress()
,但在代码中隐藏这一事实)。无论哪种方式,您都可以在编译时将DLL存储在EXE的资源中,然后在运行时将资源提取到一个临时文件中,并根据需要加载/使用它(你不能直接从EXE的资源中使用DLL。好吧,有一种方法可以做到这一点,但这是一种非常复杂和先进的技术,因为它需要实现你自己的可执行加载程序,基本上模仿操作系统内置的可执行加载器的功能)。使用完DLL后,可以从内存中卸载它并删除临时文件。
相关文章:
- 是否可以将要"ShellExecute"的文件包含在 dll 中?如果是这样,"ShellExecute"中的文件位置应该是什么?
- C++将包含的库 (ref DLL) 从根目录更改为另一个位置
- 在 MFC dll 中包含助推互斥头文件时断言
- 有关 DLL 中包含的说明
- vcruntime140_app.dll未包含在Microsoft Visual C 2017重新分布(X64)中
- 如何返回包含来自com dll的多个空字符的BSTR
- 如何包含具有多个 dll/dylib 的外部(共享)库
- C++ ATIOGLXX.pdb 包含查找模块 ATIOGLXX.dll 源代码所需的调试信息
- python永远不能调用包含继承逻辑的c++dll或左右文件
- 如何将我的C++DLL包含在一个单独的项目中
- 调用包含C#功能指针的DLL函数
- 将库和DLL包含在C ++项目中
- 使用Node.js中包含char数组的结构调用C++dll
- 在dll文件中包含C++的curl库
- 使用DLL时应用程序中包含的.lib文件
- 第一次尝试创建一个包含许多类的DLL,捆绑在一个DLL中
- C++ DLL 仅读取安全数组中包含的字符串的第一个字符
- 在 AIR 本机扩展中包含外部 DLL
- C++Winapi在.exe文件中包含DLL
- 在哪里放置和如何包含dll文件在c++项目