На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> Помогите начинающему!
    Как узнать путь к ехе-файлу из которого было запущено приложение?? И еще как объясните как работать с файлами заголовками *.h.
      ну первое - это юзай argv[0] - это путь с именем файла, который запустился. Простенький пример:
      Цитата

      #include <stdio.h>

      void main( int argc, /* Number of strings in array argv */
      char *argv[],       /* Array of command-line argument strings */
      char **envp )       /* Array of environment variable strings */
      {
         int count;

         /* Display each command-line argument. */
         printf( "\nCommand-line arguments:\n" );
         for( count = 0; count < argc; count++ )
             printf( "  argv[\%d]   \%s\n", count, argv[count] );

         /* Display each environment variable. */
         printf( "\nEnvironment variables:\n" );
         while( *envp != NULL )
             printf( "  \%s\n", *(envp++) );

         return;
      }

      А насчет хеадеров... Может в книжку заглянуть, а?
      Если писал на паскале, то хеадеры - это типа как юниты, только вместо uses пишешь #include.
        Можно и так:

        AnsiString Name,Path,Ext,NameTmp,TmpPath,TmpPath2;
        char buf[MAX_PATH];

        if(GetModuleFileName(NULL,buf,1024)==NULL)
        {
         Application->MessageBox(buf,"Error",MB_OK+MB_ICONERROR);
         return 0;
        }

        Name=ExtractFileName(buf);
        Path=ExtractFilePath(buf);
        Ext=ExtractFileExt(Name);
          Хыч! А под ДОСом-то так не будет работать :)
            А это пускай он сам определит (под чем) !

            ;)
              Цитата klep, 19.02.02, 20:42:12
              А это пускай он сам определит (под чем) !

              ;)


              Да без проблем. Первый примет под DOS или консольное приложение вин, второй тока Builder.
                ЧТО-ТО ВЫ не то говорите, товарищи кодеры. Всю жизнь юзал __argc и __argv в VC++ (из stdlib.h) и в GUI всё пахало!
                  Цитата Codemaster, 20.02.02, 05:33:24
                  ЧТО-ТО ВЫ не то говорите, товарищи кодеры. Всю жизнь юзал __argc и __argv в VC++ (из stdlib.h) и в GUI всё пахало!

                  Сомневаюсь я что в Builder это будет "пахать".
                    А зря, зря, товарищи! Ведь использование функций C runtime означает по меньшей мере переносимость.
                    Всё работает и в VC++, и в Builder. Вот тест для второго:

                    Цитата

                    #include <vcl.h>
                    #include <stdlib.h>
                    #pragma hdrstop

                    #include "Unit1.h"
                    //---------------------------------------------------------------------------
                    #pragma package(smart_init)
                    #pragma resource "*.dfm"
                    TForm1 *Form1;
                    //---------------------------------------------------------------------------
                    __fastcall TForm1::TForm1(TComponent* Owner)
                           : TForm(Owner)
                    {
                    }
                    //---------------------------------------------------------------------------

                    void __fastcall TForm1::Button1Click(TObject *Sender)
                    {
                           Label1->Caption = __argv[0];
                    }
                    //---------------------------------------------------------------------------


                    Выводит путь к EXE, как и должно быть. __argc, как обычно, количество параметров командной строки + 1 для пути, __argv[n] - путь и параметры.
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0279 ]   [ 17 queries used ]   [ Generated: 25.04.24, 11:05 GMT ]