Sziasztok!
Mivel ilyen témát nem sok helyen találni ezért gondoltam rá kérdezek!
Valaki tud e valamilyen megoldást kliens forrásban arra hogy a .dll kiterjesztésü fájlokat már elérésről olvassa a játék. Azaz ha azt szeretném hogy a lib mappábol olvassa akkor azt hogy tudom át írni?
A válaszokat előre is köszönöm!
Igazából alapból a program mellől és a rendszerkönyvtárakban keresi. Adj hozzá egy új elérést a PATH környezeti változóhoz és ott is meg fogja nézni, hogy megtalálható-e.
Forrásban akkor mire keressek rá? Ha nem baj ha vissza kérdezek.
Ez nem olyan, hogy rákeresel és átírod a forrásban.
Környezeti változók (https://hu.wikipedia.org/wiki/K%C3%B6rnyezeti_v%C3%A1ltoz%C3%B3k)
Mivel a betöltéskor és nem futás közben kéri azokat a dll-eket, így nem igazán tudod a kódban meghatározni, hogy honnan olvassa. Ott egy wikipédia oldal, hogy mik azok a környezeti változók. Azt csináld meg, hogy a könyvtár, ahonnan szeretnéd olvasni a dll-eket, szerepeljen a PATH változóban.
Ah ez jutott volna az eszembe legutoljára. Nehéz vissza rázódni. Köszi a segítséget ment a +. 8)
Üzenet összefésülés: 2018-04-24, 17:15:04
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F04%2F24%2F782K_pkiv_g_s.png&hash=85f5f0485c1323bd882c4d5a0a240e5fbd59d65c) (http://www.kepfeltoltes.eu/view.php?filename=782K_pkiv_g_s.png)
Így is meg teszi!
A patcherbe programozd bele, hogy beleírja a DLL-ek mappáját a PATH-be. A legtöbben Sanchez patcherét használjátok - ugye C#-ban van megírva -, szóval itt egy megoldás hozzá:
string dllmappa = "C:\teljes\elérési\út\a\kívánt\mappához";
if(!System.Environment.GetEnvironmentVariable("PATH").Conatins(dllmappa))
System.Environment.SetEnvironmentVariable("PATH",dllmappa + ";" + System.Environment.GetEnvironmentVariable("PATH"), EnvironmentVariableTarget.Machine);
Ha le akarod kérdezni a jelenlegi mappát, akkor System.IO.Path.GetDirectoryName(Application.ExecutablePath); C#-ban.
Az rohadt jó ötlet. Ezt szerintem be is üzemelem.