登录
首页 » VC++源码 » VC++6.0释放EXE资源文件

VC++6.0释放EXE资源文件

于 2022-12-26 发布 文件大小:148.16 kB
0 46
下载积分: 2 下载次数: 1

代码说明:

VC++6.0释放EXE资源文件,要释放的程序是一个简单的MessageBox,基于MFC对话框程序,先插入已经存EXE(或DLL)文件到VC资源文件中。   /* 函数说明:释放资源中某类型的文件   /* 参 数:新文件名、资源ID、资源类型   /* 返 回 值:成功返回TRUE,否则返回FALSE   BOOL CTestDlg::ReleaseRes(CString strFileName,WORD wResID,CString strFileType)   {    // 资源大小    DWORD dwWrite=0;    // 创建文件    HANDLE hFile = CreateFile(strFileName, GENERIC_WRITE,FILE_SHARE_WRITE,NULL,    CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);    if ( hFile == INVALID_HANDLE_VALUE )    {    return FALSE;    }    // 查找资源文件中、加载资源到内存、得到资源大小    HRSRC hrsc = FindResource(NULL, MAKEINTRESOURCE(wResID), strFileType);    HGLOBAL hG = LoadResource(NULL, hrsc);    DWORD dwSize = SizeofResource( NULL, hrsc);    // 写入文件    WriteFile(hFile,hG,dwSize,&dwWrite,NULL);    CloseHandle( hFile );    return TRUE;   }

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • VC++ 获取主机名和IP地址及多线程运行示例
    VC++6.0获取主机名和IP地址,并演示多线程的运行示例,作者:fiwen。   获取IP地址是单击窗口右上角的“获缺按钮,即可显示主机名称和该机IP地址,多线程运行演示则打开后程序立即运行,左右两侧不同的线程,执行不同的任务,各自互不影响。   多线程演示部分,分别用了两个线程,每一个线程控制一个do while循环来运行,比如其中一个线程是这样写的:   CString str;   bool ReadData= TRUE;   int i=1;   do   {    //从1到99的平方    str.Format("%-3d的平方:%-5d",i,i*i);    pList->AddString(str);    Sleep(100);    i++;   }   while (ReadData=TRUE);   return 0;
    2022-01-20 22:35:47下载
    积分:1
  • VC++ ChatRoom聊天室(客户端+服务端)
    VC++ 聊天室(客户端+服务端),CS架构的ChatRoom聊天源码,服务端用来创建公共的聊天服务,比如创建用户列表、显示聊天消息、监控用户数量和在线人数;客户端是提供给用户使用的真正聊天程序,可完成大部分的聊天操作,比如发送聊天内容、选择私聊对象、查看聊天黑名单、设置加密传输消息、设置加密密钥、密文、选择发送表情、自定义昵称等功能。聊天窗口通过调主对话框的成员函数GetMessage来显示聊天信息,当用户数增加时,播放欢迎音乐,当用户数减少时播放离开音乐。   源代码部分,请参照源码目录中命名的文件夹,查看对应功能。
    2022-03-02 10:15:20下载
    积分:1
  • vc++ 降序查询及SQL语句实现
    vc++ 对数据进行 降序查询的例子,还包括了SQL语句实现,降序查询后,查询到的内容显示在DataGrid中,这个例子需要结合数据库才能实现。数据库查询语句如下:   UpdateData(true);   m_adodc.SetRecordSource("select*from shuzcx order by 年龄 desc");   m_adodc.Refresh();
    2022-02-18 16:15:52下载
    积分:1
  • VC++ 设置位置断点跟踪程序
    VC++ 设置位置断点跟踪程序,利用随机产生的数组来测试断点跟踪的效果,具体的实现代码:   srand( (unsigned)time( NULL ) );//产生随机种子   int array[number];   CString str1,str2;   str1="原始顺序:";   for(int i=0;i  {    array[i]=rand();//设置条件断点    str2.Format("%d ",array[i]);    str1+=str2;   }   pDC->TextOut(20,10,str1);//输出原始数组顺序   BubbleSort(array, 1, number);   str1="排序顺序:";   for( i=0;i  {    str2.Format("%d ",array[i]);    str1+=str2;   }   pDC->TextOut(20,30,str1);//输出排序后的数组顺序
    2022-03-21 21:04:24下载
    积分:1
  • VC++ 字体处理:创建4种类型的字体
    VC++ 字体处理:创建4种类型的字体,第一种方法:使用CreateFontIndirect创建字体,第二种方法:使用CreateFont创建字体;第三种方法:使用CreatePointFontIndirect创建字体;第四种方法: 使用CreatePointFont创建字体;
    2022-03-24 01:42:11下载
    积分:1
  • VC++ 创建一个非模态对话框
    VC++ 创建一个非模态对话框,比较一下模态对话框,与其有何异同。以下是创建对话框的代码:   void CNonModeDlgDlg::Finish()   {    m_pChoice = NULL;    GetDlgItem(IDOK)->EnableWindow();   }   void CNonModeDlgDlg::OnOK()   {    if ( m_pChoice == NULL )    {    m_pChoice = new CChoiceDlg(this);    if ( m_pChoice->Create() == TRUE )    {    GetDlgItem(IDOK)->EnableWindow(FALSE);    }    }    else    {    m_pChoice->SetActiveWindow();    }   }
    2022-02-10 13:08:52下载
    积分:1
  • VC++基本鼠标操作——判断鼠标消息
    VC++基本鼠标操作——判断鼠标消息,操作方法:按下鼠标左键,移动鼠标即可绘制椭圆,直至释放左键!   void CBaseMouseDemoView::OnMouseMove(UINT nFlags, CPoint point)   {    if(bDrag)    {    ptUp=point;//记录鼠标的当前位置    DrawCircle();//画新圆    }    CView::OnMouseMove(nFlags, point);   }   void CBaseMouseDemoView::DrawCircle()   {    Invalidate(false);    CClientDC dc(this);//获取DC    CRect rect;    GetClientRect(rect); //获取客户窗口区域    CBrush brush(RGB(255,255,255));    dc.FillRect(rect,&brush);//填充背景色为白色    dc.Ellipse(ptDown.x,ptDown.y,ptUp.x,ptUp.y);//绘制矩形   }
    2022-03-19 16:04:24下载
    积分:1
  • vc++ 6.0 AddNew添加数据库记录实例
    VC++ 数据库基础编程例子,使用记录集对象的AddNew方法添加记录。   //连接数据库   OnInitADOConn();   //设置查询字符串   _bstr_t bstrSQL = "select * from employees order by 员工编号 desc";   //创建记录集指针对象实例   m_pRecordset.CreateInstance(__uuidof(Recordset));   //打开记录集   m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,    adLockOptimistic,adCmdText);   while(!m_pRecordset->adoEOF)   {    m_Grid.InsertItem(0,"");    m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("员工编号"));    m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("员工姓名"));    m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset->GetCollect("所属部门"));    m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset->GetCollect("基本工资"));    //将记录集指针移动到下一条记录    m_pRecordset->MoveNext();   }   //断开数据库连接   ExitConnect();
    2022-03-10 00:07:57下载
    积分:1
  • 多任务多线程断点续传
    VC++下实现多任务多线程并发可断点续传功能的例程源代码VC++下实现多任务多线程并发可断点续传功能的例程源代码
    2022-03-21 18:31:32下载
    积分:1
  • VC++ 生成Brush笔刷程序
    VC++ 生成Brush笔刷程序,使用了三种方法创建笔刷,第一种和第二种使用构造函数,第三种 创建CBrush类的一个对象myBrush3,调用CreateBrushIndirect()函数。创建了纯色、斜纹、网状方格三种形式的笔刷。   void CCreateBrushView::OnDraw(CDC* pDC)   {    CCreateBrushDoc* pDoc = GetDocument();    ASSERT_VALID(pDoc);    // TODO: add draw code for native data here    // 第一种方法创建画刷    // 定义时调用构造函数    CBrush myBrush1(RGB(0,0,255));    CBrush* pOldBrush1 = pDC->SelectObject(&myBrush1);    pDC->Rectangle(100,150,250,400);    // 恢复画刷对象    pDC->SelectObject(pOldBrush1);    // 第二种方法创建画刷    // 定义时调用构造函数    CBrush myBrush2(HS_BDIAGONAL,RGB(255,0,0));    CBrush* pOldBrush2 = pDC->SelectObject(&myBrush2);    pDC->Rectangle(300,100,450,360);    // 恢复画刷对象    pDC->SelectObject(pOldBrush2);    // 第三种方法创建画刷    // 创建CBrush类的一个对象myBrush3    CBrush myBrush3;    // 设置LOGBRUSH结构;    LOGBRUSH lb;    lb.lbStyle = BS_HATCHED;    lb.lbColor = RGB(0,255,0);    lb.lbHatch = HS_CROSS;    // 调用CreateBrushIndirect()函数    myBrush3.CreateBrushIndirect(&lb);    CBrush* pOldBrush3 = pDC->SelectObject(&myBrush
    2022-01-30 23:25:40下载
    积分:1
  • 696522资源总数
  • 104029会员总数
  • 31今日下载