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

2016-02-19 13:04 4 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的从一个程序中生成另一个程序(资源法),希望大家看完后能赶快学习起来。

【 tulaoshi.com - 编程语言 】

前不久大家都在讨论怎样通过一个程序来生成另一个程序,我提出了将另一个程序当资源文件包含在程序中一起编译,然后在程序运行时根据需要再重新生成出来,下面是我的一个例子, 在这里,我将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文件.

来源:https://www.tulaoshi.com/n/20160219/1602899.html

延伸阅读
标签: Web开发
问题:在HTML中如何写跳转到某文件? HTML中我希望按了提交后转到aaa.asp这个文件,action这里应该怎么写? formform id="form" name="form" method="post" action="" input type="submit" name="Submit" value="提交" / 终极讨厌解答: window.location.reload(&quo...
标签: Web开发
看了cragle的《有没有必要将网站Div+Css重构?》的文章,有一些想法不说不快,我也在文章的评论里提到曾经开除过两个执着使用div技术的美工,遭到一些朋友的反对,但也有一位技术总监的朋友发帖表示支持,很经典的话就是:做站是给人看的。不是给机器。符合w3c标准又怎么样?。 说到web设计,我是2000年入行的,应该还是有说几句话...
标签: PHP
  (主要用了两个字符串函数implode()和explode) 我制作的域名查询的源代码,主要用了两个字符串函数implode()和explode,利用这两个函数的切割字符串的强大功能,可以查询.com,.net.,org.,cc.,tv下的域名whois。 <?php echo '<center<form'; echo '<input type="text" name="string"'; echo '<in...
#include graphics.h #include stdio.h #include math.h #include time.h #define PI 3.14159 #define maxx 640 #define maxy 480main() {int i;  char c;  init();  draw();  c=getch(); } init() /*初始化图形系统函数*/ {int gdriver=DETECT,gmode; &n...
指甲油改造小花盆教程 大家都知道,指甲油是用来涂指甲的,当然,很多爱美的女性都非常喜欢买各种各样的指甲油,但是往往都还没有用完就快要过期,扔了可惜,留着又不能用,诶,小编教你一个方法,可以将要过期的指甲油废物利用。 工具材料 :贴纸,即将过期的指甲油,小陶瓷花盆 step1 .首先准备这样材料,可以根...

经验教程

727

收藏

35
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部