Aktuellen Pfad ermitteln

Code:
int main(int argc, char **argv)
Der Pfad mit dem Dateinamen steht schon in argv[0], du musst nur den Pfad und den Dateinamen voneinander trennen.

Bsp.:
Code:
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
	char path[FILENAME_MAX+1];
	int pos;

	memset(path, 0, (FILENAME_MAX + 1) * sizeof(char));
	pos = (strrchr(argv[0], '\\\') - argv[0]) * sizeof(char);
	strncpy(path, argv[0], pos);

	printf("path: %s\n", path);

	return 0;
}
 
Ich hätte wohl sagen sollen, dass ich mit Visual Studio arbeite (das vielleicht auch bei MFC & Visual Studio posten sollen). :rolleyes:

Da gibts keine main-Methode! :(
 
Schon schön, aber wie komme ich an lpFilename
Code:
DWORD GetModuleFileName(
  HMODULE hModule,    // handle to module to find filename for
  LPTSTR lpFilename,  // pointer to buffer to receive module path
  DWORD nSize         // size of buffer, in characters
);
und woher weiss ich, wie groß nSize ist?
 
Na du musst doch einen definieren bspw.:

Code:
char buffer[256];
...
GetModuleFileName(hModule,buffer,256);
 
:rolleyes: Ja, jetzt sehe ich das auch! ;)

Ich habe hModule NULL gesetzt, bekomme jetzt auch den Pfad, aber immer eine 2 als CString-Wert, den ich nicht loswerden kann. :(
 
Guck doch bitte mal in die Dokumentation!

Return Values
If the function succeeds, the return value is the length, in characters, of the string copied to the buffer.

If the function fails, the return value is zero. To get extended error information, call GetLastError.
 
Zurück