[C++] Behöver en review av kod som jag har.

Permalänk
Avstängd

[C++] Behöver en review av kod som jag har.

Källkodfilen

Bara den som är interesant ifs, headerfilen är bara grejjer som jag tagit från Intels hemsida då det är standarden för att göra vissa grejjer.

Är ganska newb på c++, så det är en varning.

Vad är syftet med koden:
Att öka prestandan i alla aspekter av spelet League of Legends, den gör detta genom att byta ut några DLL filer mot nyare (och modifierade), anledningen varför inte RIOT (företaget bakom LoL) gör detta är för att med nya versioner behöver de gå igenom massa QA.

Permalänk

Min spontana känsla är att du borde kunna bryta ur och generalisera kod som gör samma sak fast för olika filer. T.ex. verkar det som du har kod för att bygga upp sökvägar till filer och detta verkar göras på samma sätt för alla filer. Skulle nog försöka göra någon funktion eller klass som har hand om det.

Permalänk
Medlem

jag håller med #2 att du har mycket som går att komprimera ner i funktioner istället för att ha så pass mycket upprepande kod.

Tex så skulle jag göra alla

// holds the adobe air installation directory wstringstream buff_c; // holds the path to where tbb.dll will be downloaded wstringstream tbb0; // holds the path to the latest adobe air.dll wstringstream airfile;

till en array och bara loopa igenom dom (ser mycket snyggare ut)

sedan måste det finnas en snyggare lösning till dina

// Gets location of latest cg dll cgbin << &cgbinpath[0]; cgbin << cgfile; // Gets location of latest cggl dll cgglbin << &cgbinpath[0]; cgglbin << cgglfile;

och lika där du kopierar filerna så är det 4 nästan identiska "funktioner"

Det du gör i din kod verkar vara att för varje fil så kör du lika dana saker, så om du kan generalisera koden, lägga filerna i en array och loopa igenom det så kan du få bort mååånga rader kod.

Visa signatur

CPU: Ryzen 9 3900x Noctua NH-D14 MOBO: TUF Gaming X570-PLUS GPU: GTX 980 RAM: 32 GB 3200 MHz Chassi: R4 PSU: Corsair AX860 Hörlurar: SteelSeries 840 Mus: Logitech G502 Lightspeed V.v. nämn eller citera mig för att få svar.

Permalänk
Avstängd
Skrivet av Superhepper:

Min spontana känsla är att du borde kunna bryta ur och generalisera kod som gör samma sak fast för olika filer. T.ex. verkar det som du har kod för att bygga upp sökvägar till filer och detta verkar göras på samma sätt för alla filer. Skulle nog försöka göra någon funktion eller klass som har hand om det.

Ok, förstår, har gjort det i C#, finns ingen anledning varför jag inte kan göra det i C++

Får dock ändra/Uppdatera kommentarerna då.

EDIT: Slängde upp en snabb commit som använder då en streamarray.
EDIT2: slängde upp en till commit som komprimerade koden lite.

Permalänk
Medlem

// 0 = adobe air installation directory // 1 = path to where tbb.dll will be downloaded // 2 = path to the latest adobe air.dll // 3 = path to where adobe air.dll will be copied to // 4 = path to the latest "flash" dll // 5 = path to where the flash dll will be copied to // 6 = path to where the updated cg.dll is. // 7 = path to the cginstaller that is downloaded together with the unblock tag // 8 = path to the adobe air installer that is downloaded together with the unblock tag // 9 = path together with the unblock tag to where the adobe air.dll is in the LoL installation. // 10 = path to where the updated cgd3d9.dll is. // 11 = path to where the updated cggl.dll is. // 12 = path to the final destination of the updated cg.dll // 13 = path to the final destination of the updated cggl.dll // 14 = path to the tbb dll together with the unblock tag // 15 = path to the "flash" dll together with the unblock tag // 16 = path to the final destination of the updated cgd3d9.dll // 17 = full path to where all adobe files will be copied to. // 18 = full path to where all game files will be copied to. // 19 = path to the current working directory (where the executable was ran from)

kan du ju göra till en enum eller konstanter för o få lättare översikt på, samt att det fortfarande blir siffror i slutändan.

Visa signatur

Laptop - MacBook 2.0GHz, 4GB ram, Intel GMA 950
Stationär - i5 3570k @ 4ghz, 8gb ram, 120gb ssd + 2tb hdd, Windows 8 64bit, fractal design arc
Citera så jag hittar tillbaka :)

Permalänk
Medlem
Citat:

#ifdef ENVIRONMENT64

Är det tanken att göra olika builds av programmet för olika install typer av lol? kan inte dessa koller göras runtime för att bestämma vilka filer som ska hämtas etc (alternativt att override:a med flaggor också)?

Du har heller ingen felhantering egentligen.