Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать откуда зупускается программа? 
:(
    Опции темы
Blade
  Дата 10.8.2002, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 8.7.2002

Репутация: нет
Всего: нет



Кто-нибудь знает какая функция возвращает в качестве значения строку с путём до экзэшника, откуда, собственно говоря, программа и запускается. Нужна для авторана, что б в независимосте от местоположения он всегда (почти) работал. ???
PM MAIL   Вверх
FdX
  Дата 10.8.2002, 10:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Эх... давно не пользовался такими функциями...

Если я правильно понял и ты пишешь под винды, тебе поможет
GetModuleFileName(HANDLE hModule,LPSZ name,DWORD namelen);
под рукой нет хелпа, и точно параметров не помню.
в качестве hModule передаешь NULL, namelen - макс. длина
буфера name, в котором будет путь к ехе-шнику.

А ешшо ведь можко argv[0] юзать (подчеркиванме "_" не забудь),
тут заодно и параметры комм. строки взять можно.
  Вверх
Blade
  Дата 10.8.2002, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 8.7.2002

Репутация: нет
Всего: нет



Огромное спасибо, всё работает как часы.  :)
PM MAIL   Вверх
suborg
Дата 11.8.2002, 05:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.4.2002
Где: Москва

Репутация: нет
Всего: нет



argv[0] под win32 не работает, на сколько я помню... в общем где-то точно не работает
PM MAIL WWW ICQ   Вверх
Blade
  Дата 11.8.2002, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 8.7.2002

Репутация: нет
Всего: нет



Не знаю, с argv[] работал, только в ДОСЕ, а функция GetModuleFileName(...) работает без проблем - возвращает path до exe'шника.
PM MAIL   Вверх
FdX
Дата 11.8.2002, 12:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как это argv[] не работает? Странно... В VC++6.0 у меня работал.
Я ещще тогда чайником был, писал прогу, которая должна была открыть
файл с путем и именим, как у нее, но с другим расширением.
Про GetModuleFileName() я тогда не знал, да и про другие способы тоже.
Знал тока argv[]. И все работало.
А вот Билдере - не помню.

А вообще argv[] - стандартная вещь дли С и С++. И если не работает,
то по той причине, что компилятор не поддерживает. Это ведь не
функция ОС, а массив указателей. И заполняет его та часть проги,
которая приделывается автоматически и выполняется до main() или WinMain().
И ещще: как main объявляете?
  если так: тип main(); - может не робить argv[]
  а если так: тип main(int argc, char* argv[]); - то обязано.

В VC++ пишите "__argv[0]" (Если не ошибаюсь, два подчеркивания именно).
Это в любом месте кода вроде можно.
  Вверх
Blade
  Дата 11.8.2002, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 99
Регистрация: 8.7.2002

Репутация: нет
Всего: нет



Ты прав FdX. Протестил я "__argv[0]" в VC.NET под XP  - всё пашет и тут.
В любом случае всем спасибо за помощь. :inlove
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.