从一个程序中生成另一个程序(资源法)

2014兄弟连2014

2014兄弟连2014

2016-02-19 13:04

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的从一个程序中生成另一个程序(资源法),希望大家看完后能赶快学习起来。
前不久大家都在讨论怎样通过一个程序来生成另一个程序,我提出了将另一个程序当资源文件包含在程序中一起编译,然后在程序运行时根据需要再重新生成出来,下面是我的一个例子, 在这里,我将windows自带的写字板(writer.exe)当资源.
  
  下面是源代码
  
  //资源文件writer.exe长度为204800,在资源文件中定义为"CUSTOM"资源,编号为1111
  
  
    HRSRC   hMyRes;     //resource handle
    HGLOBAL   hgpt;       //resource pointer
    LPVOID    lpBuff;     //resource buffer pointer
    DWord     rcSize=204800;    //resource size
    HANDLE    hFile;//file to write
    LPDWORD  dwByte;//byte size had been write
    dwByte=&rcSize; //locate the resource and load the resource to memory and lock it
    hMyRes=FindResource((HMODULE)GetWindowLong(Handle,GWL_HINSTANCE),MAKEINTRE SOURCE(1111),"CUSTOM");
    if(hMyRes==NULL)
      ShowMessage(SysErrorMessage(GetLastError()));
    hgpt=LoadResource(NULL,hMyRes);
    if(hgpt==NULL)
      ShowMessage(SysErrorMessage(GetLastError()));
    lpBuff=LockResource(hgpt);
  
   //now i will read the resource and write it to an file
  
    try
      {
      hFile=CreateFile("e:mywriter.exe",GENERIC_WR99vE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
      WriteFile(hFile,lpBuff,rcSize,dwByte,NULL);
      if(*dwByte!=204800)
        ShowMessage("Failed to write to file");
      }
     __finally
      {
      CloseHandle(hFile);
      }
  
  在资源的添加与生成时,我用Borland ResourceWorkShop4.5没办法做,最后是用vb6带的资源编辑器生成的res文件.
展开更多 50%)
分享

猜你喜欢

从一个程序中生成另一个程序(资源法)

编程语言 网络编程
从一个程序中生成另一个程序(资源法)

将列更新从一个表传递到另一个表

SQLServer
将列更新从一个表传递到另一个表

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

城市的另一个角度

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
城市的另一个角度

离婚 只是另一个开始!

离婚 育儿知识 怀孕 孕妇
离婚 只是另一个开始!

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在C#中启动另一个程序的实现方法

编程语言 网络编程
在C#中启动另一个程序的实现方法

如何获得另一个应用程序窗口中的文本

C语言教程 C语言函数
如何获得另一个应用程序窗口中的文本

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Java入门:理解构造器 (转)

Java入门:理解构造器 (转)

jquery div提示框渐隐弹出与隐藏效果

jquery div提示框渐隐弹出与隐藏效果
下拉加载更多内容 ↓