代码来源:https://www.codeproject.com/Articles/13330/Using-Dialog-Templates-to-create-an-InputBox-in-C

#include <windows.h>
#include <stdio.h> int main(int argc, char *argv[])
{
printf("DlgResToDlgTemplate v1.0 (c) <lallousx86@yahoo.com>\n\n"); if (argc < )
{
printf("usage: %s MODULE_FILE DLG_ID FILE.H\n", argv[]);
return -;
} int dlgID = atoi(argv[]); HMODULE hModule;
hModule = ::LoadLibraryEx(argv[], , LOAD_LIBRARY_AS_DATAFILE);
if (hModule == NULL)
{
printf("Could not load module '%s'\n", argv[]);
return -;
} HRSRC hrsrc = ::FindResource(hModule, (LPCTSTR) dlgID, RT_DIALOG);
if (hrsrc == NULL)
{
printf("Cannot find dialog resource with id '%d'\n", dlgID);
return -;
} HGLOBAL hglobalRsrc = ::LoadResource(hModule, hrsrc);
if (hglobalRsrc == NULL)
{
printf("Cannot load resource!\n");
return -;
} char *buf = (char *)::LockResource(hglobalRsrc);
if (buf == NULL)
{
printf("Cannot lock resource!\n");
return -;
} DWORD sz = ::SizeofResource(hModule, hrsrc); FILE *fp = fopen(argv[], "wb");
if (fp == NULL)
{
printf("Could not open '%s' for writing\n", argv[]);
return -;
} char temp[]; sprintf(temp, "static unsigned char dlg_%d[] = \n{\n\t", dlgID);
fwrite(temp, , strlen(temp), fp); sz--;
for (DWORD i=;i<=sz;i++)
{
sprintf(temp, "0x%02x", (unsigned char)(buf[i] & 0xFF));
fwrite(temp, , strlen(temp), fp); // don't append a comma if it was last byte
if (i != sz)
{
fwrite(", ", , , fp);
} if (i && (i % == ))
fwrite("\n\t", , , fp);
} strcpy(temp, "\n};\n");
fwrite(temp, , strlen(temp), fp); fclose(fp);
::FreeLibrary(hModule); printf("generated %s (%d bytes) successfully!\n", argv[], sz); return ;
}

DlgResToDlgTemplate 的代码,提取EXE中的资源,然后转化成C的字符串数组的更多相关文章

  1. 【Azure 环境】【Azure Developer】使用Python代码获取Azure 中的资源的Metrics定义及数据

    问题描述 使用Python SDK来获取Azure上的各种资源的Metrics的名称以及Metrics Data的示例 问题解答 通过 azure-monitor-query ,可以创建一个 metr ...

  2. 一行代码提取url中querystring的某个key的值

    var itemdata = "OrderFilter=0&ProjectTag=15&DateType=0"; var projectTag = itemdata ...

  3. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  4. 在Visual Studio中将dll以资源的形式嵌入exe中

    一.Dll的优点: 1.扩展应用程序的特性 2.简化项目管理 3.有助于节省内存 4.促进资源的共享 5.促进本地化 6.有助于解决平台间的差异 7.可用于特殊目的 有关于dll及注入相关理论资料,可 ...

  5. 用MT.exe将exe中的manifest文件提取出来和将manifest文件放入exe中

     前一种方法是将manifest文件放入exe中,但是要记得需要在工程中设置 这样的话exe中就不存在manifest了,在debug目录下就会看到相应的manifest文件.后者是将exe中的man ...

  6. Pyinstaller如何将资源文件一起打包至exe中

    基本原理:Pyinstaller 可以将资源文件一起bundle到exe中,当exe在运行时,会生成一个临时文件夹,程序可通过sys._MEIPASS访问临时文件夹中的资源 官方说明:https:// ...

  7. web项目打包后在代码中获取资源文件

    在web项目里面,有时代码里面需要引用一些自定义的配置文件,这些配置文件如果放在类路径下,项目经过打包后使用的相对路径也会发生变化,所以以下给出了三种解决方案. 一.properties下配置 在类路 ...

  8. 读取web工程中.properties资源文件的模板代码

    读取web工程中.properties资源文件的模板代码 // 读取web工程中.properties资源文件的模板代码 private void test2() throws IOException ...

  9. Pyinstaller打包: 将资源文件或文件夹打包到最后生成的exe中

    前提:用pyinstaller打包时部分资源文件可以利用qrc转成py文件来读取,但是有部分文件类型不适用. 原理:Pyinstaller 将资源文件一起打包到exe中.当exe运行时,会生成一个临时 ...

随机推荐

  1. Elastic Search安装-windows

    转载自:https://blog.csdn.net/linkkb/article/details/82805145 其中稍作修改 ElasticSearch介绍 ES是一个基于Lucene的分布式全文 ...

  2. Spring基础04——ApplicationContext

    1.ApplicationContext简述 ApplicationContext代表IOC容器,在SpringIOC容器中读取Bean配置创建Bean实例之前,必须对它进行实例化,只有在容器实例化后 ...

  3. 利用mysql中if函数排序

    格式:IF(Condition,A,B) 意义:当Condition为TRUE时,返回A:当Condition为FALSE时,返回B. 作用:作为条件语句使用. select if(`from_use ...

  4. dockerfile制作笔记

    dockerfile语法格式:   FROM: 基础镜像(就是在什么镜像上面做)   MAINTAINER: 镜像创建者信息(作者的信息)   EXPOSE: 开放的端口   ENV: 设置变量   ...

  5. 分页控件SSTab

    一.分页控件SSTab概述1.作用:采用分页形式查询或编辑数据表中数据.2.添加到控件箱菜单命令:工程 | 部件,选择:Microsoft Tabbed Dialog Control 6.0 (SP6 ...

  6. 牛客练习赛33 E tokitsukaze and Similar String (字符串哈希hash)

    链接:https://ac.nowcoder.com/acm/contest/308/E 来源:牛客网 tokitsukaze and Similar String 时间限制:C/C++ 2秒,其他语 ...

  7. mepg

    MPEG(Moving Picture Experts Group,动态图像专家组)

  8. sshfs 挂载远程文件夹

    1 安装 # yum install sshfs # dnf + releases] $ sudo apt-get install sshfs [On Debian/Ubuntu based syst ...

  9. 针对360浏览器读取不了cookie的问题

    今天学习cookie的时候发现在360和谷歌浏览器下设置cookie打开是空白的!经过一番搜索才知道在本地是访问不了cookie只能在服务器端进行访问,但是仍然可以在火狐下进行访问

  10. Linux openssh8.0p1升级步骤

    前期准备开启本机telnet服务,以防openssh升级失败无法连接服务器.注:redhat 5 6 和 redhat7 开机启动配置相关文件不同,请注意 1.安装zlibtar -xzvf zlib ...