通过UpdateResource更新STRING TABLE(添加多个string)

可能重复:
使用UpdateResource更新string

我想通过UpdateResources更新二进制string表,目前,我的代码只添加一个string,但我想要它添加多个条目到string表。

这是我的代码:

HANDLE hRes = BeginUpdateResource("file.exe",TRUE); if (hRes) { char * sNewString = "Line"; int iCharCount = (strlen(sNewString) + 1); //sNewString.size() + 1; LPWSTR pUnicodeString = new WCHAR[iCharCount]; if (!pUnicodeString) { cout << "Error" << endl; } DWORD dwUnicodeCharCount = MultiByteToWideChar(CP_ACP,NULL,sNewString,-1,pUnicodeString,iCharCount); HGLOBAL hGlob = GlobalAlloc(GHND,(dwUnicodeCharCount + 4) * sizeof(WCHAR)); LPWSTR pBufStart = (LPWSTR)GlobalLock(hGlob); LPWSTR pBuf = pBufStart; pBuf++; // offset to make it string ID=1. Increment by more // to change to a different string ID //next 2 bytes is string length *(pBuf++) = (WCHAR)dwUnicodeCharCount-1; for (int i = 0; i < (int)dwUnicodeCharCount-1; i++) { dwUnicodeCharCount++; } delete pUnicodeString; if (++dwUnicodeCharCount%1) // make sure even number { dwUnicodeCharCount++; } if(!UpdateResource(hRes,RT_STRING,MAKEINTRESOURCE(1),MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), pBufStart, dwUnicodeCharCount * sizeof(WCHAR))) { cout << "Function failed!" << endl; } GlobalUnlock(hGlob); GlobalFree(hGlob); EndUpdateResource(hRes,FALSE); 

我试图编辑`

 char * sNewString = "Line"; 

到`

 char * sNewString = "Line1\nLine2"; 

试图模仿换行符无济于事。

我错过了什么吗? 我仔细查看了http://msdn.microsoft.com/en-us/library/windows/desktop/aa381050(v=vs.85).aspx ,看起来我没有错过任何关键点,没有function失败。

Solutions Collecting From Web of "通过UpdateResource更新STRING TABLE(添加多个string)"