Может кто нить сможет разрешить маленький нюанс. Дело в следующем: апишная функция GetModuleFileName получает во втором параметре указатель на строковый буфер, в котором возвращает полное имя файла (полное, т.е. типа "C:\mydir\my_subdir\filename.exe"), которое собсна мне и не требуется. Мне необходимо из этой строки взять тольно непосредственно имя файла (filename.exe). Каким образом это можно было бы реализовать? Я сделал следующим образом, но как то криво мне кажецца. Отматывал указателем с конца строки до первого бекслеша и копировал дальше в буффер:
Код:
GetModuleFileName(NULL,&NameBuffer[0],MAX_PATH);
DWORD StringLenght=lstrlen(&NameBuffer[0]);
char* lpNameBuffer=&NameBuffer[StringLenght-1];
do{
--lpNameBuffer;
}while(*lpNameBuffer!='\x5C');
char* lpShortName=ShortName;
do{
++lpNameBuffer;
*lpShortName = *lpNameBuffer;
++lpShortName;
}while(*lpNameBuffer!='\0');
printf("ShortName: %s\n",&ShortName[0]);
Может есть другой способ?
ЗЫ функцию fnsplit() не предлагать =)