Меню

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
  • Вопрос

  • создаю пустой проект с++ и хочу подключить пространство имен  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.

                              0 0 голоса
                              Рейтинг статьи
                              Подписаться
                              Уведомить о
                              guest

                              0 комментариев
                              Старые
                              Новые Популярные
                              Межтекстовые Отзывы
                              Посмотреть все комментарии

                              А вот еще интересные материалы:

                            • Яшка сломя голову остановился исправьте ошибки
                            • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
                            • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
                            • Using namespace std ошибка
                            • Using namespace std выдает ошибку