Using namespace system c ошибка

To formalize and expand on my comment, the Console class and generally the System namespace are part of the .NET framework.

In that context, the «C++» tab included in the MSDN documentation page of the Console::SetCursorPosition(int, int) method actually refers to the C++/CLI language. The C++/CLI language is distinct (although intentionally similar) from the C++ language. Correspondingly, the C++/CLI language contains various constructs which are not recognized by the C++ compiler toolset used when compiling Win32 projects.

In other words, to get rid of the "Error: name must be a namespace name" error, you would need to convert your Win32 C++ project to a CLR project. The easiest way to do that would be to create a new project, selecting one of the templates under «Visual C++» / «CLR»:

Creating new C++ CLR project

The equivalent of .lib file depdendencies (relative to your Lib Files as Linker Input link) of Win32 projects for CLR project would be assembly references. You’d then typically add those assembly references with «Add References» under «Common Properties , References» project properties:

CLR assembly references

However, in your specific case you may very well find out that the System assembly reference is already included as part of the CLR project template.
You may want to check How to: Add or Remove References on MSDN for more details.

Finally, if you absolutely want to manually convert an existing Win32 project, you would need to set the «Common Language Runtime Support» project properties under «General» and the «C/C++ , General» tabs to one of /clr, /clr:pure, /clr:safe or /clr:oldSyntax (depending on your specific application requirements; if you’re just toying around you might want to start with /clr) for all Configurations and Platforms as well as specify the targeted .Net framework version by directly editing the .vcxproj (as indicated in this answer). You would also still need to add assembly dependencies as with the new project approach above.

  • Remove From My Forums
  • Question

  • I am building an outlook Addin in Visual C++ (ATL).
    The basic addin is working fine. I need to use HttpWebRequest to set cookies. Here I will need System namespace.
    But, I am not able to use «using namespace system». it says «A namespace with this name does not exist». Similarly, i m not able to use <System.dll> or <mscorlib.dll>.

    I tried to change Properties > Configuration Properties > General >  Common language Runtime Support as «/clr» but in this case I get two errors
    1. error RA0000: Could not load file or assembly «name» or one of its dependencies.
    2. error: PRJ0050Failed to register output. Please ensure you have appropriate permission to modify registry.

    Well, I have admin previlledge. And, my addin is running on outlook if I do not use the namespace and do not change CLR.

    So, how can I set my cookies (Which is my main Goal)..

    Thanx
    Satish

Answers

  • HttpWebRequest is not ATL, it is CLR. If you want to use it, you must do what the error message says (C1190), and use a /clr option. Otherwise, investigate CInternetSession.

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    >
    error C2871: System: пространство имен с таким именем не существует

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    19.03.11, 16:11

      Здравствуйте форумчане!
      Почему в моей программе появляется такая ошибка?


      like-nix



      Сообщ.
      #2

      ,
      19.03.11, 16:14

        Senior Member

        ****

        Рейтинг (т): 27

        Посмотрите тут http://msdn.microsoft.com/ru-ru/library/8x5x43k7(v=VS.90).aspx

        Master

        Hsilgos



        Сообщ.
        #3

        ,
        19.03.11, 16:14

          Потому что ты скорее всего компилируешь программу написанную на C# (или скорее на C++/CLI) компилятором C++.

          Сообщение отредактировано: Hsilgos — 19.03.11, 16:17


          like-nix



          Сообщ.
          #4

          ,
          19.03.11, 16:15

            Senior Member

            ****

            Рейтинг (т): 27

            Я Вам помогу =)

            «имя»: пространство имен с таким именем не существует.
            ‘name’: a namespace with this name does not exist.
            Эта ошибка возникает при передаче идентификатора, который не является пространством имен, директиве using.

            В следующем примере показано возникновение ошибки C2871:

            ExpandedWrap disabled

              // C2871.cpp

              // compile with: /c

              using namespace d;   // C2871 d is not a namespace

              using namespace System;   // OK

            Добавлено 19.03.11, 16:16

            Цитата Hsilgos @ 19.03.11, 16:14

            C# компилятором C++.

            Интересный вариант =)

            Сообщение отредактировано: like-nix — 19.03.11, 16:17

            Guru

            Qraizer



            Сообщ.
            #5

            ,
            19.03.11, 16:20

              Дай угадаю. Создал проект C++, и писать пытаешься на ManagedC++?
              Прочти Правила, плз.


              МихаилИнженер



              Сообщ.
              #6

              ,
              19.03.11, 16:44

                Создал проект на C++. Сделал в нём форму Приветствие.h. В начале файла Приветствие.h есть строки:

                ExpandedWrap disabled

                  #pragma once

                  using namespace System;

                  using namespace System::ComponentModel;

                  using namespace System::Collections;

                  using namespace System::Windows::Forms;

                  using namespace System::Data;

                  using namespace System::Drawing;

                Компилятор начинает находить ошибки начиная со строки: using namespace System;
                Причём форму я создал автоматически с помощью мастера. Добавил на неё элементы управления и всё. Далее просто хочу вывести её на экран. Но компилятор нашёл ошибки в своём собственном коде.
                Что надо сделать чтобы пространство имён Systems сало видимым?

                Master

                Hsilgos



                Сообщ.
                #7

                ,
                19.03.11, 17:35

                  Создать другой тип проекта: VisualC++ -> CLR

                  Добавлено 19.03.11, 17:36
                  Или Other Languges -> C#, не знаю точно, что ты пытаешься сделать.


                  МихаилИнженер



                  Сообщ.
                  #8

                  ,
                  19.03.11, 17:39

                    Моя задача создать окно и научиться из этого окна вызывать другие формы на экран


                    Adil



                    Сообщ.
                    #9

                    ,
                    19.03.11, 17:47

                      Цитата МихаилИнженер @ 19.03.11, 17:39

                      Моя задача создать окно и научиться из этого окна вызывать другие формы на экран

                      Язык то какой выбрал для этого?

                      Добавлено 19.03.11, 17:48

                      Цитата МихаилИнженер @ 19.03.11, 16:44

                      Сделал в нём форму Приветствие.h. В начале файла Приветствие.h

                      Ужас какой. Что-нибудь где-нибудь когда-нибудь точно заглючит.


                      МихаилИнженер



                      Сообщ.
                      #10

                      ,
                      19.03.11, 17:54

                        А что надо делать, какой проект создавать чтобы из одной формы вызывать другую?


                        D_KEY



                        Сообщ.
                        #11

                        ,
                        19.03.11, 18:02

                          Впервую очередь, нужно решить, на каком языке писать, на С++ или С++/CLI. Соответственно выбрать проект.

                          Сообщение отредактировано: D_KEY — 19.03.11, 18:03


                          МихаилИнженер



                          Сообщ.
                          #12

                          ,
                          19.03.11, 18:12

                            Вроде как надо писать на C++. Так как ObjectARX написан на C++

                            Guru

                            ElcnU



                            Сообщ.
                            #13

                            ,
                            19.03.11, 19:11

                              как создаешь проект
                              если нужно чисто с++ + winapi то и создавай win32 poject, иначе я тебя в другой раздел направлю…

                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                              0 пользователей:

                              • Предыдущая тема
                              • .NET: Общие вопросы
                              • Следующая тема

                              Рейтинг@Mail.ru

                              [ Script execution time: 0,0365 ]   [ 16 queries used ]   [ Generated: 4.06.23, 12:36 GMT ]  

                              Перейти к контенту

                              To formalize and expand on my comment, the Console class and generally the System namespace are part of the .NET framework.

                              In that context, the «C++» tab included in the MSDN documentation page of the Console::SetCursorPosition(int, int) method actually refers to the C++/CLI language. The C++/CLI language is distinct (although intentionally similar) from the C++ language. Correspondingly, the C++/CLI language contains various constructs which are not recognized by the C++ compiler toolset used when compiling Win32 projects.

                              In other words, to get rid of the "Error: name must be a namespace name" error, you would need to convert your Win32 C++ project to a CLR project. The easiest way to do that would be to create a new project, selecting one of the templates under «Visual C++» / «CLR»:

                              Creating new C++ CLR project

                              The equivalent of .lib file depdendencies (relative to your Lib Files as Linker Input link) of Win32 projects for CLR project would be assembly references. You’d then typically add those assembly references with «Add References» under «Common Properties , References» project properties:

                              CLR assembly references

                              However, in your specific case you may very well find out that the System assembly reference is already included as part of the CLR project template.
                              You may want to check How to: Add or Remove References on MSDN for more details.

                              Finally, if you absolutely want to manually convert an existing Win32 project, you would need to set the «Common Language Runtime Support» project properties under «General» and the «C/C++ , General» tabs to one of /clr, /clr:pure, /clr:safe or /clr:oldSyntax (depending on your specific application requirements; if you’re just toying around you might want to start with /clr) for all Configurations and Platforms as well as specify the targeted .Net framework version by directly editing the .vcxproj (as indicated in this answer). You would also still need to add assembly dependencies as with the new project approach above.

                              • Remove From My Forums
                              • Вопрос

                              • создаю пустой проект с++ и хочу подключить пространство имен  System::Windows::Forms;

                              Ответы

                              • Я уже отвечал однажды на подобный вопрос. Посмотрите
                                здесь. Проблема в том, что мастер создания форм уже добавил директивы using в заголовочном файле внутрь пространства имен Вашего проекта. Вам не нужно их писать в cpp-файле, нужно лишь «открыть» пространство
                                проекта и все.


                                Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

                                • Предложено в качестве ответа

                                  23 октября 2014 г. 6:12

                                • Помечено в качестве ответа
                                  Magals
                                  23 октября 2014 г. 7:48

                              b_d

                              4 / 2 / 1

                              Регистрация: 27.01.2014

                              Сообщений: 114

                              1

                              30.04.2014, 17:05. Показов 15670. Ответов 10

                              Метки нет (Все метки)


                              почему в консоли я не могу поставить вот это

                              C++
                              1
                              
                              using namespace System;

                              рядом с этим

                              C++
                              1
                              
                              using namespace std;

                              хочу использовать

                              C++
                              1
                              
                              System::Convert::ToString();

                              в виндовс формс это уже используется а тут не получается

                              __________________
                              Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

                              0

                              Каратель

                              Эксперт С++

                              6606 / 4025 / 401

                              Регистрация: 26.03.2010

                              Сообщений: 9,273

                              Записей в блоге: 1

                              30.04.2014, 17:07

                              2

                              проект CLR консольный?

                              0

                              Don’t worry, be happy

                              17777 / 10542 / 2034

                              Регистрация: 27.09.2012

                              Сообщений: 26,510

                              Записей в блоге: 1

                              30.04.2014, 17:07

                              3

                              Где тут? В c++/cli чтоли? Тогда причем тут раздел c++?

                              0

                              :)

                              Эксперт С++

                              4773 / 3267 / 497

                              Регистрация: 19.02.2013

                              Сообщений: 9,046

                              30.04.2014, 17:18

                              4

                              Цитата
                              Сообщение от Croessmah
                              Посмотреть сообщение

                              Тогда причем тут раздел c++?

                              потому что в нем не написано «only native c++» Но даже если и будет написано, всё равно такие темы будут создаваться, т.к. раздел для новичков, а им в большинстве своем неведомы различия cli-не-cli.

                              0

                              b_d

                              4 / 2 / 1

                              Регистрация: 27.01.2014

                              Сообщений: 114

                              30.04.2014, 17:30

                               [ТС]

                              5

                              обычный консольный проект, вот код:

                              C++
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              17
                              
                              #include <iostream>
                               
                              int score;
                              string score_s;
                               
                              using namespace std;
                              using namespace system;
                               
                              int main()
                              {
                                      score_s = "5346";
                               
                                  score = System::Convert::ToInt32(score_s);
                               
                                  system("pause");
                                  return 0;
                              }

                              Добавлено через 2 минуты
                              про using namespace system;
                              пишет необходимо использовать имя пространства времен

                              0

                              Tulosba

                              :)

                              Эксперт С++

                              4773 / 3267 / 497

                              Регистрация: 19.02.2013

                              Сообщений: 9,046

                              30.04.2014, 17:44

                              6

                              Цитата
                              Сообщение от b_d
                              Посмотреть сообщение

                              score = System::Convert::ToInt32(score_s);

                              b_d, откуда вы взяли это?
                              Ознакомьтесь с различиями между управляемым (managed) и неуправляемым (native) кодом C++. И решите какой вариант вам нужен. В native-варианте ваш код будет выглядеть примерно так:

                              C++
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              
                              #include <iostream>
                              #include <cstdlib>
                              #include <string>
                               
                              int main()
                              {
                                 std::string score_s = "5346";
                               
                                 int score = std::strtol(score_s.c_str(), NULL, 10); 
                               
                                 std::system("pause");
                                 return 0;
                              }

                              0

                              2644 / 2220 / 239

                              Регистрация: 03.07.2012

                              Сообщений: 8,064

                              Записей в блоге: 1

                              30.04.2014, 17:56

                              7

                              Определись с проектом — он CLR или обычный (не CLR).

                              0

                              4 / 2 / 1

                              Регистрация: 27.01.2014

                              Сообщений: 114

                              30.04.2014, 18:37

                               [ТС]

                              8

                              обычный

                              Добавлено через 31 минуту
                              всем спасибо)
                              в .h файле — файле формы — работает, о чем я в начале и говорил, а в обычном, не clr, консольном проекте нет. в нем я просто проверял.

                              Добавлено через 1 минуту
                              проблема в общем то не решена, но ее решение уже не требуется

                              Добавлено через 22 секунды
                              вот такие пирожки)

                              0

                              Don’t worry, be happy

                              17777 / 10542 / 2034

                              Регистрация: 27.09.2012

                              Сообщений: 26,510

                              Записей в блоге: 1

                              30.04.2014, 18:42

                              9

                              Цитата
                              Сообщение от b_d
                              Посмотреть сообщение

                              проблема в общем то не решена

                              clr и не clr проекты — это проекты для разных языков программирования!

                              0

                              4 / 2 / 1

                              Регистрация: 27.01.2014

                              Сообщений: 114

                              30.04.2014, 19:00

                               [ТС]

                              10

                              Цитата
                              Сообщение от Croessmah
                              Посмотреть сообщение

                              clr и не clr проекты — это проекты для разных языков программирования!

                              ну вот я в студии создаю пустой проект не clr — самый обычный самый пустой, самая присама консолька… пишу в ней на c++… далее создаю пустой проект clr и добавляю в него форму, в ней, то есть в .h файле, пишу… тоже на c++…

                              0

                              Don’t worry, be happy

                              17777 / 10542 / 2034

                              Регистрация: 27.09.2012

                              Сообщений: 26,510

                              Записей в блоге: 1

                              30.04.2014, 19:04

                              11

                              Цитата
                              Сообщение от b_d
                              Посмотреть сообщение

                              далее создаю пустой проект clr и добавляю в него форму, в ней, то есть в .h файле, пишу… тоже на c++…

                              это уже c++/cli — другой язык

                              0

                                msm.ru

                                Нравится ресурс?

                                Помоги проекту!

                                >
                                error C2871: System: пространство имен с таким именем не существует

                                • Подписаться на тему
                                • Сообщить другу
                                • Скачать/распечатать тему



                                Сообщ.
                                #1

                                ,
                                19.03.11, 16:11

                                  Здравствуйте форумчане!
                                  Почему в моей программе появляется такая ошибка?


                                  like-nix



                                  Сообщ.
                                  #2

                                  ,
                                  19.03.11, 16:14

                                    Senior Member

                                    ****

                                    Рейтинг (т): 27

                                    Посмотрите тут http://msdn.microsoft.com/ru-ru/library/8x5x43k7(v=VS.90).aspx

                                    Master

                                    Hsilgos



                                    Сообщ.
                                    #3

                                    ,
                                    19.03.11, 16:14

                                      Потому что ты скорее всего компилируешь программу написанную на C# (или скорее на C++/CLI) компилятором C++.

                                      Сообщение отредактировано: Hsilgos — 19.03.11, 16:17


                                      like-nix



                                      Сообщ.
                                      #4

                                      ,
                                      19.03.11, 16:15

                                        Senior Member

                                        ****

                                        Рейтинг (т): 27

                                        Я Вам помогу =)

                                        «имя»: пространство имен с таким именем не существует.
                                        ‘name’: a namespace with this name does not exist.
                                        Эта ошибка возникает при передаче идентификатора, который не является пространством имен, директиве using.

                                        В следующем примере показано возникновение ошибки C2871:

                                        ExpandedWrap disabled

                                          // C2871.cpp

                                          // compile with: /c

                                          using namespace d;   // C2871 d is not a namespace

                                          using namespace System;   // OK

                                        Добавлено 19.03.11, 16:16

                                        Цитата Hsilgos @ 19.03.11, 16:14

                                        C# компилятором C++.

                                        Интересный вариант =)

                                        Сообщение отредактировано: like-nix — 19.03.11, 16:17

                                        Guru

                                        Qraizer



                                        Сообщ.
                                        #5

                                        ,
                                        19.03.11, 16:20

                                          Дай угадаю. Создал проект C++, и писать пытаешься на ManagedC++?
                                          Прочти Правила, плз.


                                          МихаилИнженер



                                          Сообщ.
                                          #6

                                          ,
                                          19.03.11, 16:44

                                            Создал проект на C++. Сделал в нём форму Приветствие.h. В начале файла Приветствие.h есть строки:

                                            ExpandedWrap disabled

                                              #pragma once

                                              using namespace System;

                                              using namespace System::ComponentModel;

                                              using namespace System::Collections;

                                              using namespace System::Windows::Forms;

                                              using namespace System::Data;

                                              using namespace System::Drawing;

                                            Компилятор начинает находить ошибки начиная со строки: using namespace System;
                                            Причём форму я создал автоматически с помощью мастера. Добавил на неё элементы управления и всё. Далее просто хочу вывести её на экран. Но компилятор нашёл ошибки в своём собственном коде.
                                            Что надо сделать чтобы пространство имён Systems сало видимым?

                                            Master

                                            Hsilgos



                                            Сообщ.
                                            #7

                                            ,
                                            19.03.11, 17:35

                                              Создать другой тип проекта: VisualC++ -> CLR

                                              Добавлено 19.03.11, 17:36
                                              Или Other Languges -> C#, не знаю точно, что ты пытаешься сделать.


                                              МихаилИнженер



                                              Сообщ.
                                              #8

                                              ,
                                              19.03.11, 17:39

                                                Моя задача создать окно и научиться из этого окна вызывать другие формы на экран


                                                Adil



                                                Сообщ.
                                                #9

                                                ,
                                                19.03.11, 17:47

                                                  Цитата МихаилИнженер @ 19.03.11, 17:39

                                                  Моя задача создать окно и научиться из этого окна вызывать другие формы на экран

                                                  Язык то какой выбрал для этого?

                                                  Добавлено 19.03.11, 17:48

                                                  Цитата МихаилИнженер @ 19.03.11, 16:44

                                                  Сделал в нём форму Приветствие.h. В начале файла Приветствие.h

                                                  Ужас какой. Что-нибудь где-нибудь когда-нибудь точно заглючит.


                                                  МихаилИнженер



                                                  Сообщ.
                                                  #10

                                                  ,
                                                  19.03.11, 17:54

                                                    А что надо делать, какой проект создавать чтобы из одной формы вызывать другую?


                                                    D_KEY



                                                    Сообщ.
                                                    #11

                                                    ,
                                                    19.03.11, 18:02

                                                      Впервую очередь, нужно решить, на каком языке писать, на С++ или С++/CLI. Соответственно выбрать проект.

                                                      Сообщение отредактировано: D_KEY — 19.03.11, 18:03


                                                      МихаилИнженер



                                                      Сообщ.
                                                      #12

                                                      ,
                                                      19.03.11, 18:12

                                                        Вроде как надо писать на C++. Так как ObjectARX написан на C++

                                                        Guru

                                                        ElcnU



                                                        Сообщ.
                                                        #13

                                                        ,
                                                        19.03.11, 19:11

                                                          как создаешь проект
                                                          если нужно чисто с++ + winapi то и создавай win32 poject, иначе я тебя в другой раздел направлю…

                                                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                                                          0 пользователей:

                                                          • Предыдущая тема
                                                          • .NET: Общие вопросы
                                                          • Следующая тема

                                                          Рейтинг@Mail.ru

                                                          [ Script execution time: 0,0456 ]   [ 16 queries used ]   [ Generated: 29.01.23, 02:55 GMT ]  

                                                          • Remove From My Forums
                                                          • Question

                                                          • I am building an outlook Addin in Visual C++ (ATL).
                                                            The basic addin is working fine. I need to use HttpWebRequest to set cookies. Here I will need System namespace.
                                                            But, I am not able to use «using namespace system». it says «A namespace with this name does not exist». Similarly, i m not able to use <System.dll> or <mscorlib.dll>.

                                                            I tried to change Properties > Configuration Properties > General >  Common language Runtime Support as «/clr» but in this case I get two errors
                                                            1. error RA0000: Could not load file or assembly «name» or one of its dependencies.
                                                            2. error: PRJ0050Failed to register output. Please ensure you have appropriate permission to modify registry.

                                                            Well, I have admin previlledge. And, my addin is running on outlook if I do not use the namespace and do not change CLR.

                                                            So, how can I set my cookies (Which is my main Goal)..

                                                            Thanx
                                                            Satish

                                                          Answers

                                                          • HttpWebRequest is not ATL, it is CLR. If you want to use it, you must do what the error message says (C1190), and use a /clr option. Otherwise, investigate CInternetSession.

                                                          • Remove From My Forums
                                                          • Question

                                                          • I am building an outlook Addin in Visual C++ (ATL).
                                                            The basic addin is working fine. I need to use HttpWebRequest to set cookies. Here I will need System namespace.
                                                            But, I am not able to use «using namespace system». it says «A namespace with this name does not exist». Similarly, i m not able to use <System.dll> or <mscorlib.dll>.

                                                            I tried to change Properties > Configuration Properties > General >  Common language Runtime Support as «/clr» but in this case I get two errors
                                                            1. error RA0000: Could not load file or assembly «name» or one of its dependencies.
                                                            2. error: PRJ0050Failed to register output. Please ensure you have appropriate permission to modify registry.

                                                            Well, I have admin previlledge. And, my addin is running on outlook if I do not use the namespace and do not change CLR.

                                                            So, how can I set my cookies (Which is my main Goal)..

                                                            Thanx
                                                            Satish

                                                          Answers

                                                          • HttpWebRequest is not ATL, it is CLR. If you want to use it, you must do what the error message says (C1190), and use a /clr option. Otherwise, investigate CInternetSession.


                                                          Форум программистов Vingrad

                                                          Модераторы: Partizan, gambit

                                                          Поиск:

                                                          Ответ в темуСоздание новой темы
                                                          Создание опроса
                                                          > Пространство имен System не существует! ошибка при обьявлении пространства имен 

                                                          V

                                                             

                                                          Опции темы

                                                          sanek1990
                                                          Дата 3.11.2009, 11:49 (ссылка)
                                                          | (нет голосов)
                                                          Загрузка ... Загрузка …




                                                          Быстрая цитата

                                                          Цитата

                                                          Новичок

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

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

                                                          Здравствуйте! изучаю С++ по книжке, вбиваю код 

                                                          Код

                                                          #include "stdafx.h" 

                                                          using namespace System; 
                                                          using namespace System::IO; 
                                                          using namespace System::Text; 

                                                          Компилятор ругается 
                                                          user posted image

                                                          Подскажите плиз что не так?
                                                          Ошибка Error C2871: System пространство имен с таким именем не существует

                                                           Это сообщение отредактировал(а) sanek1990 — 3.11.2009, 11:49

                                                          PM MAIL WWW Skype   Вверх
                                                          azesmcar
                                                          Дата 3.11.2009, 12:02 (ссылка)
                                                          | (нет голосов)
                                                          Загрузка ... Загрузка …




                                                          Быстрая цитата

                                                          Цитата

                                                          uploading…
                                                          ****

                                                          Профиль
                                                          Группа: Участник Клуба
                                                          Сообщений: 6291
                                                          Регистрация: 12.11.2004
                                                          Где: Армения

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

                                                          sanek1990

                                                          По какой это книжке ты так C++ изучаешь? Это не C++ а C++ .NET, проверь, правильно ли ты создал проект.

                                                          PM   Вверх
                                                          sanek1990
                                                          Дата 3.11.2009, 12:09 (ссылка)
                                                          | (нет голосов)
                                                          Загрузка ... Загрузка …




                                                          Быстрая цитата

                                                          Цитата

                                                          Новичок

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

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

                                                          Книжка Б. Пахомов СС++ Visual C++ 2008 для начинающих. Это даже не С++ вроде а С, потому как глава называется «Ввод и вывод С».
                                                          Вот полный листинг

                                                          Код

                                                          #include "stdafx.h"

                                                          using namespace System;
                                                          using namespace System::IO;
                                                          using namespace System::Text;

                                                          int _tmain()
                                                          {
                                                              /*класс обеспечивает методами работы с файлами, конструктор создает указатель к файлу*/
                                                              String^ path = "c:\MyTest.doc";        
                                                              FileInfo^ fi = gcnew FileInfo (path); 
                                                              //если фаел не существует -  он создается:
                                                              if (!fi->Exists)
                                                                  {
                                                                      fi=>Create();
                                                                  }

                                                              FileStream^ fs = fi->OpenWrite();
                                                              /*метод создает для записи обьект типа FileStream. 
                                                              Методы этого обьекта используются для работы c файлами*/
                                                              while(1)
                                                                  {
                                                                      String ^s = System::Console::ReadLine();
                                                                      //чтение строки символов с консоли(клавиатуры)
                                                                      if(s=="") // признак конца ввода строк - <Enter>
                                                                          break;
                                                                      array<Byte> ^info = (gcnew UTF8Encoding (true))-> GetBytes(s);
                                                                      array<Byte> ^b = gcnew array<Byte>(1){'n'}; // переход на новую строку

                                                                      /*преобразование прочитанной строки в массив байтов т.к. 
                                                                      метод fs->Write(), используемый для записи строки, требует
                                                                      на входе однобайтового массива символов, получение которых обеспечивает
                                                                      конструктор класса UTF8Encoding, класса, который представляет формат UTF-8
                                                                      (Unicode Transfer Format 8-битовый) символов Юникода
                                                                      */

                                                                      fs->Write(info,0,info->Length); // запись с 0-го элемента массива с начала строки
                                                                      fs->Write(b,0,b->Length); //ввод конца строки
                                                                  } //while
                                                              if (fs)
                                                                  delete (IDaisposable^)fs;
                                                              /*освобождение ресурса от экземпляра с указателем fs.
                                                              При освобождении ресурса файл закрывается*/
                                                          }

                                                          Это сообщение отредактировал(а) sanek1990 — 3.11.2009, 12:10

                                                          PM MAIL WWW Skype   Вверх
                                                          xvr
                                                          Дата 3.11.2009, 12:16 (ссылка)
                                                          |    (голосов:2)
                                                          Загрузка ... Загрузка …




                                                          Быстрая цитата

                                                          Цитата

                                                          Эксперт
                                                          ****

                                                          Профиль
                                                          Группа: Комодератор
                                                          Сообщений: 7046
                                                          Регистрация: 28.8.2007
                                                          Где: Дублин, Ирландия

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

                                                          Ни фига себе ‘для начинающих’  smile Может лучше с ‘Hello world’ начинать?
                                                          Это самый что ни на есть С++ .NET (мертворожденное нечто, удачно собравшее в себя недостатки С++ и С#)
                                                          Книжку — ф топку!

                                                          PM MAIL   Вверх
                                                          azesmcar
                                                          Дата 3.11.2009, 12:16 (ссылка)
                                                          |    (голосов:1)
                                                          Загрузка ... Загрузка …




                                                          Быстрая цитата

                                                          Цитата

                                                          uploading…
                                                          ****

                                                          Профиль
                                                          Группа: Участник Клуба
                                                          Сообщений: 6291
                                                          Регистрация: 12.11.2004
                                                          Где: Армения

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

                                                          Цитата(sanek1990 @  3.11.2009,  12:09 Найти цитируемый пост)
                                                          Это даже не С++ вроде а С

                                                          Повторяюсь, это Microsoft Visual C++ .NET, не Си, не Си++. Наверняка ты создал обыкновенный проект, надо создавать вот так
                                                          user posted image
                                                          но я бы не советовал это изучать. Найди нормальную книгу по C++ и изучай, или начинай с C#.

                                                          Цитата(xvr @  3.11.2009,  12:16 Найти цитируемый пост)
                                                          мертворожденное нечто, удачно собравшее в себя недостатки С++ и С#

                                                           

                                                          smile точно сказано smile

                                                          Это сообщение отредактировал(а) azesmcar — 3.11.2009, 12:18

                                                          PM   Вверх
                                                          sanek1990
                                                          Дата 3.11.2009, 12:46 (ссылка)
                                                          | (нет голосов)
                                                          Загрузка ... Загрузка …




                                                          Быстрая цитата

                                                          Цитата

                                                          Новичок

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

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

                                                          Цитата
                                                          Повторяюсь, это Microsoft Visual C++ .NET, не Си, не Си++. Наверняка ты создал обыкновенный проект, надо создавать вот так

                                                          Да действительно помогло, раньше в книге писали, что   CLR — приложение именно надо создавать, а в этой главе перед данным листингом решили пропустить (на 200-ой странице книги — читатель профи уже smile )… Все проблемы с Sysytem и прочие сопутсвующие ушли.. (52 ошибки (( ). осталась одна всего такая, если return 0  в конце программы не писать (как в книжке)
                                                          вот тут 

                                                          Код

                                                          if (fs)
                                                                  delete (IDisposable^)fs;
                                                              /*освобождение ресурса от экземпляра с указателем fs.
                                                              При освобождении ресурса файл закрывается*/

                                                              user posted image

                                                          если же напишу return 0 ,  то получаю следующее

                                                          Код

                                                          if (fs)
                                                                  delete (IDisposable^)fs;
                                                              /*освобождение ресурса от экземпляра с указателем fs.
                                                              При освобождении ресурса файл закрывается*/
                                                              return 0;

                                                          user posted image

                                                          Что опять не нравится??

                                                          Зы.

                                                          Цитата
                                                          Повторяюсь, это Microsoft Visual C++ .NET, не Си, не Си++.

                                                          теперь понял, буду различать, спасибо!!
                                                          Зыы.

                                                          Цитата
                                                          Ни фига себе ‘для начинающих’   Может лучше с ‘Hello world’ начинать?

                                                          начиналось все с этого smile  только вот чем дальше в лес тем больше дров))

                                                          Цитата
                                                          Книжку — ф топку!

                                                          Задумаюсь над этим)))

                                                           Это сообщение отредактировал(а) sanek1990 — 3.11.2009, 12:46

                                                          PM MAIL WWW Skype   Вверх
                                                          azesmcar
                                                          Дата 3.11.2009, 12:49 (ссылка)
                                                          | (нет голосов)
                                                          Загрузка ... Загрузка …




                                                          Быстрая цитата

                                                          Цитата

                                                          uploading…
                                                          ****

                                                          Профиль
                                                          Группа: Участник Клуба
                                                          Сообщений: 6291
                                                          Регистрация: 12.11.2004
                                                          Где: Армения

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

                                                          Цитата(sanek1990 @  3.11.2009,  12:46 Найти цитируемый пост)
                                                          Что опять не нравится??

                                                          ну, скорее всего ему не нравиться название функции main, попробуй так

                                                          Код

                                                          int main(array<System::String ^> ^args)

                                                          и return 0 больше не нужен, точнее не обязателен.

                                                          Это сообщение отредактировал(а) azesmcar — 3.11.2009, 12:49

                                                          PM   Вверх
                                                          sanek1990
                                                          Дата 3.11.2009, 13:00 (ссылка)
                                                          | (нет голосов)
                                                          Загрузка ... Загрузка …




                                                          Быстрая цитата

                                                          Цитата

                                                          Новичок

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

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

                                                          Цитата
                                                          попробуй так

                                                          пробовал, точнее так все и стоит, но почему то не помогает((
                                                          Листинг стал таким

                                                          Код

                                                          #include "stdafx.h"

                                                          using namespace System;
                                                          using namespace System::IO;
                                                          using namespace System::Text;

                                                          int tmain(array<System::String ^> ^args)
                                                          {
                                                              /*класс обеспечивает методами работы с файлами, конструктор создает указатель к файлу*/
                                                              String^ path = "c:\MyTest.doc";        
                                                              FileInfo^ fi = gcnew FileInfo (path); 

                                                              //если фаел не существует -  он создается:
                                                              if (!fi->Exists)
                                                                  {
                                                                      fi->Create();
                                                                  }

                                                              FileStream^ fs = fi->OpenWrite();
                                                              /*метод создает для записи обьект типа FileStream. 
                                                              Методы этого обьекта используются для работы c файлами*/
                                                              while(1)

                                                                  {
                                                                      String ^s = System::Console::ReadLine();
                                                                      //чтение строки символов с консоли(клавиатуры)
                                                                      if(s=="") // признак конца ввода строк - <Enter>
                                                                          break;
                                                                      array<Byte> ^info = (gcnew UTF8Encoding (true))-> GetBytes(s);
                                                                      array<Byte> ^b = gcnew array<Byte>(1){'n'}; // переход на новую строку

                                                                      /*преобразование прочитанной строки в массив байтов т.к. 
                                                                      метод fs->Write(), используемый для записи строки, требует
                                                                      на входе однобайтового массива символов, получение которых обеспечивает
                                                                      конструктор класса UTF8Encoding, класса, который представляет формат UTF-8
                                                                      (Unicode Transfer Format 8-битовый) символов Юникода
                                                                      */

                                                                      fs->Write(info,0,info->Length); // запись с 0-го элемента массива с начала строки
                                                                      fs->Write(b,0,b->Length); //ввод конца строки
                                                                  } //while

                                                              if (fs)
                                                                  delete (IDisposable^)fs;
                                                              /*освобождение ресурса от экземпляра с указателем fs.
                                                              При освобождении ресурса файл закрывается*/
                                                              //return 0; /* надо или не надо??????????*/

                                                              }

                                                          Это сообщение отредактировал(а) sanek1990 — 3.11.2009, 13:02

                                                          PM MAIL WWW Skype   Вверх
                                                          azesmcar
                                                          Дата 3.11.2009, 13:01 (ссылка)
                                                          | (нет голосов)
                                                          Загрузка ... Загрузка …




                                                          Быстрая цитата

                                                          Цитата

                                                          uploading…
                                                          ****

                                                          Профиль
                                                          Группа: Участник Клуба
                                                          Сообщений: 6291
                                                          Регистрация: 12.11.2004
                                                          Где: Армения

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

                                                          Цитата(sanek1990 @  3.11.2009,  13:00 Найти цитируемый пост)
                                                          пробовал, точнее так все и стоит, но почему то не помогает((
                                                          Листинг стал таким

                                                          сам найдешь отличия? smile

                                                          Цитата(azesmcar @  3.11.2009,  12:49 Найти цитируемый пост)
                                                          int main(array<System::String ^> ^args)

                                                          Цитата(sanek1990 @  3.11.2009,  13:00 Найти цитируемый пост)
                                                          int tmain(array<System::String ^> ^args)
                                                          PM   Вверх
                                                          sanek1990
                                                          Дата 3.11.2009, 13:05 (ссылка)
                                                          | (нет голосов)
                                                          Загрузка ... Загрузка …




                                                          Быстрая цитата

                                                          Цитата

                                                          Новичок

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

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

                                                          Цитата
                                                          сам найдешь отличия?  

                                                          Эээххххх))) проглядел(( Спасибо огромное, все заработало!! Тема помечается как решенная)) было б 100 постов поставил бы «+» к репутации  smile  

                                                          Это сообщение отредактировал(а) sanek1990 — 3.11.2009, 13:07

                                                          PM MAIL WWW Skype   Вверх



















                                                          Ответ в темуСоздание новой темы
                                                          Создание опроса
                                                          Прежде чем создать тему, посмотрите сюда:

                                                          Partizan

                                                          PashaPash

                                                          • Что же такое .NET? Краткое описание, изучаем.
                                                          • Какой язык программирования выбрать? выбираем.
                                                          • C#. С чего начать? начинаем.
                                                          • Защита исходного кода .NET приложений, защищаем.
                                                          • Литература по .NET, обращаемся.

                                                          • FAQ раздела, ищем здесь.
                                                          • Архиполезные ссылки: www.connectionstrings.com, www.pinvoke.net, www.codeproject.com

                                                          Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс «транслит» если у Вас нет русских шрифтов.

                                                          Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)?
                                                          Пишите сюда, или отправляйте репорт. Поставим :)

                                                          Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


                                                          Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

                                                           

                                                          0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
                                                          0 Пользователей:
                                                          « Предыдущая тема | .NET для новичков | Следующая тема »

                                                          Понравилась статья? Поделить с друзьями:
                                                        • Using excel microsoft office interop excel ошибка
                                                        • Usflib dll ошибка
                                                        • Usf ошибка на частотнике
                                                        • Users usr общая файловая ошибка при доступе
                                                        • Userinit exe ошибка приложения