UINT uID=65535;//这里是资源的ID char *chDec = "1234"; HMODULE  m_hModule=::LoadLibrary("d:\\string.exe");
HRSRC   hRC = FindResourceEx( m_hModule,
RT_DIALOG,
MAKEINTRESOURCE(uID),
MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED)
); HGLOBAL hgl = LoadResource( m_hModule, hRC);
LPVOID lpvoid = LockResource( hgl); HANDLE hUpdateRes;  
    CString chFilePath = "d:\\string.exe"; WCHAR strblock[256];
    int a = MultiByteToWideChar( CP_ACP,0,chDec,strlen(chDec)+1,strblock,sizeof(strblock)/sizeof(strblock[0])); hUpdateRes = BeginUpdateResource(chFilePath, false); 

int ret=UpdateResource(hUpdateRes,       
RT_DIALOG,                   
MAKEINTRESOURCE(uID),                 
MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),  
strblock,                  
sizeof(strblock));
ret=EndUpdateResource(hUpdateRes,false);
FreeLibrary(m_hModule);

解决方案 »

  1.   

    嗨,兄弟,不说你的代码的目的、方法和问题,是很耗费别人的时间的,而且别人一下子也看不出问题在哪儿,估计没有多少人愿意看的,先帮你顶一把,你说清楚一点吧。顺便提一句,65535这个ID是系统在你没有指定ID的情况下的默认ID,即如果你所有没有指定ID号的地方,系统都会默认该ID为65535,你看是不是这个问题。
      

  2.   

    我这个程序是对exe的资源进行修改问题不是ID的问题,换其他的ID也一样我想用"1234"替换原ID=65535的资源
      

  3.   

    你没有计算地址的便移量offest