Slash mit Backslashes ersetzen

nchristoph

Erfahrenes Mitglied
Hallo zusammen,

ich bin gerade dabei, die DevIL in mein Spiel einzubauen.

Lt. einem Tutorial, welches ich gefunden habe, muss ich den Pfad umbauen und zwar das er anstatt von Slashes Backslashes enthält.

C++:
char DevILLib[256];

	sprintf(DevILLib, "%s/lib/DevIL.dll", gEngfuncs.pfnGetGameDirectory());
	// replace forward slashes with backslashes
	for( int i=0; i < 256; i++ )
	if( DevILLib[i] == ''''/'''' ) 
	{
		DevILLib[i] = ''''\\'''';
	}
	
	m_hDevLib = LoadLibrary(DevILLib);

Leider kommt bei mir jetzt folgender Fehler:

Code:
 error C2017: ungueltige Escape-folge

Kann mir eventuell wer sagen, was ich falsch mache bzw. ob es einen einfacheren Weg gibt?

Danke im Voraus
 
Zuletzt bearbeitet:
Danke Sheel, das wars:p

Anscheinend hat der Parser der Tutorialseite aus 2 ' 4 gemacht.

Jetzt compiled mir msvc++ zwar fehlerfrei, mein Ziel habe ich damit leider nicht erreicht.

Ich will die DevIl.dll aus einem Unterverzeichnis laden nur egal, was ich versuche, die DLL wird aus dem Hauptverzeichnis geladen.
 
Hallo,

Ich will die DevIl.dll aus einem Unterverzeichnis laden nur egal, was ich versuche, die DLL wird aus dem Hauptverzeichnis geladen.
Wie merkst du das? Wenn ein vollständiger Pfad angegeben ist, lädt LoadLibrary die DLL auch aus eben diesem Pfad und nirgendwo anders her. Was steht denn am Ende in DevILLib drin?.

Gruß
MCoder
 
Ich merke es, indem ich einen Crash habe weil die Devil.dll NICHT im EXE Verzeichnis liegt.

Ich hab jetzt aber auch nochmal den Code auseinandergenommen und meinen Fehler gefunden.

pfnGetGameDirectory() gibt den Pfad mit einem Slash am Ende zurück. Nachdem ich allerdings den Pfad so zusammengesetzt habe:


C++:
sprintf(DevILLib, "%s/lib/DevIL.dll", gEngfuncs.pfnGetGameDirectory());

Hat der Pfad vor der ersetzung so ausgesehen
Code:
c:/test//lib/devil.dll

und danach so
Code:
c:\\test\\\\lib\\devil.dll

Nachdem ich jetzt nach %s den Slash entfernt habe, funktioniert es tadellos. Ich muss nur aufpassen, WANN ich den Code initialisiere. Sobald ich den Code als erstes ausführe, wird die LoadLibrary anweisung Ignoriert und mein vorhaben ist im A****.

Danke nochmal an Sheel für den Hinweis mit den 4 '.

Bitte entschuldigt etwaige Rechtschreibfehler und Fehler bei Groß/Kleinschreibung. Hab das vom Tablet gepostet.
 

Neue Beiträge

Zurück