Вернуться   Foxter.ru > Мой компьютер > Программирование

 
 
Опции темы Опции просмотра
Старый 14.04.2007, 16:19   #46069  
Старожила
 
Аватар для Kostyan
 
Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277Репутация: 132277
Регистрация: 17.10.2005
Адрес: где то в степях Ярославщины
Сообщения: 399
По умолчанию

Может кто нить сможет разрешить маленький нюанс. Дело в следующем: апишная функция 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() не предлагать =)
__________________
the signature is absent
Kostyan вне форума   Ответить с цитированием
 


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Powered by vBulletin
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
[Foxter Skin] developed by: Foxter.ru