zadałem pytanie tutaj - updating STRING TABLE via UpdateResource (adding multiple strings)aktualizowania tabeli ciąg z UpdateResource
A teraz pytam jeszcze raz, jak ten czas mogę dodać dużo więcej szczegółów na pytanie.
Próbowałem tego przez ostatni dzień lub coś bezskutecznie. Chciałbym, aby wynik był taki (ręcznie dodałem ciągi w MSVS): Jak widać, wiele wpisów, i to "czyste" i mogą być łatwo dostępne przez program!
Teraz moje źródło:
wstring buffer[5] = {L" Meow",L" I",L" Am",L" A",L" Dinosaur"}; // ignore the string
if (HANDLE hRes = BeginUpdateResource("Output.exe",TRUE))
{
for (int i = 0; i < 5; i++)
{
wchar_t * temp;
temp = new wchar_t[(buffer[i].length()+1)];
wcscpy(temp,buffer[i].c_str());
wcout << temp << endl;
UpdateResource(hRes,RT_STRING,MAKEINTRESOURCE(1),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
temp, 48); //buffer[i].length()+1
delete[] temp;
}
EndUpdateResource(hRes,FALSE);
}
Produkuje:
Co jest źle, jak się wydaje tylko dodałem ostatni ciąg do stołu, nie struny przed nim !
przy próbie modyfikacji źródła tak MAKEINTRESOURCE (1) jest teraz "MAKEINTRESOURCE (I)", rezultat jest ten, jak pokazano na różnych zdjęciach:
sukces w rzeczywistości dodano wszystkie łańcuchy, ale wydaje się, że utworzono różne tabele strun, które nie są zgodne z oczekiwaniami. Chociaż zauważam, że liczba ID wzrosła o 16 na każdym zdjęciu, co mogłoby wyjaśnić coś. Zasadniczo chcę, aby łańcuchy były sformatowane jak na pierwszym obrazie (z wieloma ciągami znaków), ale nie mam pojęcia, jak to zrobić.
Dziękuję za pomoc.
Jak zbudować tabelę ciągów? Czy istnieje struktura do wypełnienia? Sprawdziłem i spróbowałem StringTable i StringFileInfo, ale bez skutku. – James