首页
社区
课程
招聘
[求助]帮看一下程序
发表于: 2009-7-16 00:04 3997

[求助]帮看一下程序

2009-7-16 00:04
3997
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include<windef.h>
//#include"wei.h"
void main(){
  DWORD dw ;
  HRSRC   hMyRes;   
  HGLOBAL   hgpt;     
  LPVOID    lpBuff;     
  HANDLE    hFile;//file to write
  LPDWORD  dwByte=0;//byte size had been write
  hMyRes=FindResource(NULL,MAKEINTRESOURCE(ID_DRIVER_SYS),MAKEINTRESOURCE(RC_SYS));
  if(hMyRes==NULL)
  {
     dw=GetLastError();
         printf("error:%d\n",(int)dw);
  }        
  DWORD size=SizeofResource(NULL,hMyRes);
  hgpt=LoadResource(NULL,hMyRes);
  if(hgpt==NULL)
  {
     dw=GetLastError();
         printf("error:%d\n",(int)dw);
  }      
  lpBuff=LockResource(hgpt);
  hFile=CreateFile("e:\\mywriter.exe",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
  WriteFile(hFile,lpBuff,size-1,NULL,NULL);
  CloseHandle(hFile);
}
就是ez.exe作为资源,生成mywriter.exe,可是FindResource()的第2第3个参数不会定义. 各位兄弟帮帮忙呀

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
FindResource(
  HMODULE hModule, // module handle
  LPCTSTR lpName,  // resource name
  LPCTSTR lpType   // resource type
);

MAKEINTRESOURCE(RC_SYS)返回的是一个什么样的resources type?

你换个resource type 看看。
2009-7-16 02:01
0
雪    币: 99
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
能不能给个具体的例子呀?
2009-7-17 00:22
0
雪    币: 558
活跃值: (43)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
4
如果你的资源是这样定义的
ID_DRIVER_SYS                 RC_SYS    DISCARDABLE     "Driver.sys"

我想你应该这样写
hMyRes=FindResource(NULL, MAKEINTRESOURCE(ID_DRIVER_SYS), "RC_SYS");
2009-7-17 00:35
0
雪    币: 129
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
hMyRes=FindResource(NULL,MAKEINTRESOURCE(ID_DRIVER_SYS),"RC_SYS"));

楼上正解,你应该写成这样就没问题了
2009-7-17 12:00
0
游客
登录 | 注册 方可回帖
返回
//