VC++6.0使用Resource文件来生成必备的支撑文件

目的:(1)使用exe自己资源文件来创建支撑的dll文件或者配置文件,这样可以在开发绿色软件的时候只需要拷贝一个exe可执行文件就可以独立运行。

(2)防止误删配套文件导致exe应用无法执行。

(3)生成预置配置文件方便使用。

思路:把库文件导入到资源文件,在程序运行时检查是否存在,否则生成,做到一个exe文件就可以独立运行。

第一步:建立一个MFC Dialog based 静态链接库(静态库不依赖其他库)MFC应用

第二步:导入资源文件

第三步:编写代码,在构造函数加入代码

CRc2fileApp::CRc2fileApp()
{// TODO: add construction code here,// Place all significant initialization in InitInstanceHINSTANCE hInst = (HINSTANCE)GetModuleHandle(0);HRSRC hResource = FindResource(hInst, MAKEINTRESOURCE(IDR_DLL1), _T("DLL"));if (hResource == NULL) {MessageBox(NULL, _T("Cannot find resource"), _T("Error"), MB_OK | MB_ICONERROR);return;}DWORD dwSize = SizeofResource(hInst, hResource);HGLOBAL hGlobal = LoadResource(hInst, hResource);if (hGlobal == NULL) {MessageBox(NULL, _T("Cannot load resource"), _T("Error"), MB_OK | MB_ICONERROR);return;}LPSTR lpDllBin = (LPSTR)LockResource(hGlobal);if (lpDllBin == NULL) {MessageBox(NULL, _T("Cannot lock resource"), _T("Error"), MB_OK | MB_ICONERROR);return;}// 可以将数据写入文件FILE *fp = fopen("sqlite3.dll", "wb");if (fp == NULL) {MessageBox(NULL, _T("Cannot open file"), _T("Error"), MB_OK | MB_ICONERROR);return;}fwrite(lpDllBin, dwSize, 1, fp);fclose(fp);FreeResource(hGlobal);return;}

结果:

完整代码上传到资源,欢迎下载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/700906.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ICode国际青少年编程竞赛- Python-5级训练场-带参数函数

ICode国际青少年编程竞赛- Python-5级训练场-带参数函数 1、 def get_item(a):Dev.step(a)Dev.step(-a) get_item(4) Spaceship.step(2) get_item(2) Spaceship.step(3) get_item(5) Spaceship.step(2) get_item(3) Spaceship.step(3) get_item(4)2、 def get_item(a): D…

产品经理资料包干货

1.《产品汪》免费电子书 2016年我面试了差不多有200多位产品求职者,其中不乏之前做厨师编剧这些岗位的人。在这个过程中我意识到大众或许对产品经理这个岗位存在一些认知和理解上的误差,于是我就想着写一本产品经理相关的书。 关于本书的更多信息可查看…

QT学习(1)——创建第一个QT程序,信号和槽,打开关闭窗口的案例

目录 引出规范和帮助文档创建第一个Qt程序对象树概念信号signal槽slot自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式返回值mutable修饰案例 打开关闭窗口案例 总结 引出 QT学习(1&#…

跨境必看|TikTok账号运营的八大秘籍

国内的传统生意都是可以在抖音上做,那么也可以在TikTok 上重新做一遍。那该如何才能把握住这片巨大的蓝海,TikTok 账号的运营就成为了主要的关键了,对于TikTok账号运营的八大秘籍,大家一起看看是如何做的? 一、固定节…

SpringBoot接收参数的19种方式

https://juejin.cn/post/7343243744479625267?share_token6D3AD82C-0404-47A7-949C-CA71F9BC9583

C. Sort Zero

题目描述 思路分析: 记住他是要保证这个数列是不降的,也就是说如果某一个位置上的数变成了0,那么这个数前面的部分一定全都是0了,我们用map数组得到每一个数出现的最晚的位置,先从后向前遍历一遍,找出从哪开始出现了递减,然后标记下来结束即可,看看前面的每一个数都要用st标记是…

【比邻智选】MF871U模组

🚀搭载国产芯,严苛测试,稳定可靠 🛠️R16特性加持,5G LAN,纳秒级精度 🌐超低成本,丰富协议,连接无界限

计算礼品发放的最小分组数目 - 贪心思维

系列文章目录 文章目录 系列文章目录前言一、题目描述二、输入描述三、输出描述四、java代码五、测试用例 前言 本人最近再练习算法,所以会发布自己的解题思路,希望大家多指教 一、题目描述 又到了一年的末尾,项目组让小明负责为使得参加晚…

C# 下载安装,使用OfficeOpenXml

下载安装OfficeOpenXml模块 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Reflection.Emit; using System.Text; using System.Text.RegularEx…

LangChain-Chatchat 实践

1. 说明 比较了几个AI LLM的集成应用工具(比如Quivr, Dify, one-api), 还是LangChain-Chatchat更符合我的需要: 支持私有化部署不同的LLM知识库支持Api支持开源免费, 容易二开 相关路径: 条项路径LangChain-Chatchat 项目/data0/Projects/Langchain-ChatchatLLM 语言模型保…

深入学习指针2

前言 hello,我又来了,今天有我继续带领大家深入的学习指针,通过上次的学习,我们已经了解到了指针的基本概念,指针如何使用,指针使用的益处,以及一些相关的概念,那今天我们就继续深入的学习&am…

BOM部分

一,概述 二,Windows对象常见的事件 1.窗口加载事件 上面那个是会等页面都加载完了,在进行函数的调用或者触发事件,如(图像,文本,css,js等),所以那个声明可以…