首页 > 系统相关 >C++实现Windows释放资源文件到本地

C++实现Windows释放资源文件到本地

时间:2023-07-28 15:45:31浏览次数:44  
标签:文件 Windows C++ hr param 本地 NULL 资源

 C++实现释放资源文件到本地

用途很多,可以实现动态释放DLL文件,需时加载.

/**
 * \brief 释放资源文件到本地
 * \param lpName 资源文件名称
 * \param lpType 资源文件分类
 * \param lpFileName 生成到本地的文件名称
 * \return 
 */
BOOL ReleaseResource(_In_ LPCWSTR lpName, _In_ LPCWSTR lpType, LPCWSTR lpFileName)
{
    //寻找资源文件
    HRSRC hr = ::FindResource(NULL, lpName, lpType);
    if (NULL == hr)
    {
        int ierr = GetLastError();
        return false;
    }
    //判断资源文件大小
    ULONG nResSize = ::SizeofResource(NULL, hr);  // Data size/length  
    //加载资源文件
    HGLOBAL hG = ::LoadResource(NULL, hr);
    if (NULL == hG || nResSize <= 0)
    {
        return false;
    }
    //锁定资源文件
    LPVOID pBuffer = LockResource(hG);
    if (NULL == pBuffer)
        return false;
    //创建本地文件
    HANDLE hFile = CreateFile(lpFileName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL,
        CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hFile == INVALID_HANDLE_VALUE)
    {
        return FALSE;
    }
    //写入本地文件
    DWORD dwWrite = 0;
    WriteFile(hFile, pBuffer, nResSize, &dwWrite, NULL);
    CloseHandle(hFile);
    //释放资源文件
    FreeResource(hG);
}

最近比较忙,在搞HCK认证.水一篇....

标签:文件,Windows,C++,hr,param,本地,NULL,资源
From: https://www.cnblogs.com/qq525293680/p/17587741.html

相关文章

  • Windows OS 下通过VNC访问Linux OS(可视化界面)
    VNC介绍:VNC(VirtualNetworkConsole),即虚拟网络控制台,它是一款基于UNIX和Linux操作系统的优秀远程控制工具软件,由著名的AT&T的欧洲研究实验室开发,远程控制能力强大,高效实用,并且免费开源。VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器......
  • 内网环境windows server 2012r2系统怎样手动安装cab更新补丁
    在内网部署了几台winserver2012r2服务器,由于是纯内网,要求和互联网物理隔离,内网的服务器更新补丁成了一个问题,在互联网上没有找到单独的集成补丁包,去微软官方手动下载再去更新费时费力,便想到使用以下方法进行。1、使用互联网台式机安装一台虚拟机,虚拟机要求和内网服务器使用相......
  • nginx for Windows
    配置nginx.confworker_processes1;events{worker_connections1024;}http{server{listen8092;server_namelocalhost;location/{rootD:/IdeaProjects/xcProjects/test/RuoYi-Vue/ruoyi-ui/dist;try_files$uri......
  • mysql8.0环境的搭建(Windows)
    1.MySQL的卸载因为之前可能安装过其他版本的mysql,所以在安装之前,需要将原先安装的进行卸载。1.1步骤1:停止MySQL服务在卸载之前,先停止MySQL8.0的服务。按键盘上的Ctrl+Alt+Delete组合键,打开任务管理器对话框,可以在服务列表找到MySQL8.0的服务,如果现在正在运行......
  • Windows PowerShell 使用SDKMAN
    前言sdkman(TheSoftwareDevelopmentKitManager),从名字上就可以很明显的感觉到,这个软件是干什么的,有点像Nodejs中的nvm工具。在开发过程中,总能遇到这样一种情况,就是有些时候要这个版本的,有些时候要使用其他版本的,这样就得不停的切换环境变量中的设置。使用sdkman即可......
  • Windows | Linux 查找环境变量二进制所在目录
    1.Windows使用where命令wherejava2.Linux使用which命令whichjava......
  • C++中的命名空间
    命名空间1.概念通过定义命名空间,可以将符号分类管理,防止命名冲突。2.使用方式作用域限定符std::coutusing编译指令usingnamespacestd;using声明机制usingstd::coutusing编译指令简洁,但易发生冲突。常用using声明机制。且,using声明函数时不用带形参部分。in......
  • C++入门到放弃(04)——类的访问权限:public、private、protected
    1.成员访问权限假定以下类:classBase{public://constructfunctionBase(inta=0,intb=0,intc=0):m_public(),m_protected(),m_private(){}intm_public;voidpublic_fun(){cout<<m_public<<endl;}protected:intm_prote......
  • 设置ip和主机名映射:linux配置hosts文件 | windows配置hosts文件
    摘要目的:Windows下主机名和ip的映射关系linux设置主机名和ip的映射关系一、Windows设置主机名和ip映射修改文件C:\Windows\System32\drivers\etc\hosts,添加ip和主机名192.168.200.130CentOS192.168.10.100hadoop100192.168.10.101hadoop101192.168.10.102hadoop1......
  • 主机名解析过程:Hosts文件 | DNS | windows查看DNS缓存 | 隐患
    摘要目的:本文以linux虚拟机和Windows为例,来介绍一下主机名解析过程主机名解析不完全是靠DNS一、基本概念主机名:比如www.baidu.com、hadoop100等等1.Hosts文件hosts文件是一个文本文件,用来记录IP和Hostname(主机名)的映射关系在Windows和linux里面都有Windows:C:\Wi......