ich such sowas wie
nur halt kein .netCode:Application::StartupPath;
Druckbare Version
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...
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 ;)
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;