ich such sowas wie
nur halt kein .netCode:Application::StartupPath;
ich such sowas wie
nur halt kein .netCode:Application::StartupPath;
http://msdn.microsoft.com/en-us/libr...artuppath.aspx
Meinst du das?
E: Sorry, habs nur schnell überflogen und nen C++ code gesehen - ich such nochmal
ja aber
Code:This page is specific to Microsoft Visual Studio 2008/.NET Framework 3.5
http://www.gamedev.net/community/for...opic_id=510880
Das sollte helfen...
*Haftungsausschluss*
*People-I-Respect-Table*
ich bekomme es irgentwie nicht hin...
funzt nicht da gibt er mir nur irgentwelche nummern aus... immer verschiedene..Code:argv[0]
und
da spuckt er mir nur fehler aus..Code:char module_name[MAX_PATH]; GetModuleFileName(0, module_name, MAX_PATH); std::string path(module_name); path.erase(path.find_last_of('\\'), std::string::npos);
das geht sicher auch einfacher, aber ich habe mal ein bisschen improvisiert und die String-Klasse aus dem "Spiel" rausgelassen...Code:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> int main(void) { char buffer[200]; int i = 0; GetModuleFileName(0, buffer, sizeof(buffer) - 1); printf("#1 %s\n", buffer); /* runterzählen bis gillt: i = 0, oder ein backslash gefunden wurde */ for(i = strlen(buffer); i && buffer[i] != '\\'; i--); /* bytes verschieben */ memmove(buffer, &buffer[i + 1], strlen(buffer) - i); /* nullbyte setzen um den rest des strings 'abzutrennen' */ buffer[strlen(buffer) - i] = 0; printf("#2 %s\n", buffer); getc(stdin); return 0; }
Ausgabe sieht wie folgt aus:
Über ARGV ginge das dann so (das ist auch Linux kompatibel, solang man den Backslash mit einem normalen Slash ersetzen würde...):Code:#1 C:\Users\Home\Desktop\a.exe #2 a.exe
Code:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> int main(int argc, char *argv[]) { int i = 0; printf("#1 %s\n", argv[0]); /* runterzählen bis gillt: i = 0, oder ein backslash gefunden wurde */ for(i = strlen(argv[0]); i && argv[0][i] != '\\'; i--); /* bytes verschieben */ memmove(argv[0], &argv[0][i + 1], strlen(argv[0]) - i); /* nullbyte setzen um den rest des strings 'abzutrennen' */ argv[0][strlen(argv[0]) - i] = 0; printf("#2 %s\n", argv[0]); getc(stdin); return 0; }
Hoffe das hilft dir weiter
PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
please do feed the trolls crew and elk
Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
"Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^
ja danke das funzt jetz..
falls reiner Pfad erwünschtCode:char *Buffer = new char[MAX_PATH+2]; GetModuleFileNameA(0, Buffer, MAX_PATH); MessageBoxA(0, Buffer, "Current FilePath", MB_ICONINFORMATION); delete[] Buffer;
Code:char *Buffer = new char[MAX_PATH+2]; GetModuleFileNameA(0, Buffer, MAX_PATH); for(int i = lstrlenA(Buffer); i > 0; i--) { if(Buffer[i]=='\\') { Buffer[i] = '\0'; break; } } MessageBoxA(0, Buffer, "Current FilePath", MB_ICONINFORMATION); delete[] Buffer;
Write the code correctly and it will compile