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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна помощь с учебным кодом для C++ .NET 
:(
    Опции темы
penb
  Дата 12.5.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!

Я пытался откомпилить такой код в Visual Studio 2005

Код

//Draw
//Применение связанного списка для сохранения
//координат произвольного количества точек
//и их отображение с использованием GDI +
#include "stdafx.h"
#using <mscorlib.dll>
#using <System.Windows.Forms.dll >
#using <System.dll >
#using <System.Drawing.dll>
using namespace System ;
using namespace System::Drawing ;
using namespace System::Windows::Forms ;
//Создание структуры, представляющей элемент связанного списка
class PointList
{
public:
int nX;
int nY;
PointList *poNext ;
//Получение координат новой точки
void NewPoint(PointList *poNew)
{
//Чтение координат Х и Y
Console::WriteLine(S"Введите координату X");
poNew->nX = Int32::Parse(Console::ReadLine());
Console::WriteLine(S"Введите координату Y");
poNew->nY = Int32::Parse(Console::ReadLine());
//Присвоение указателю нулевого значения
poNew->poNext = 0;
}
//Отображение точек на экране
void DrawPoint(Graphics *poGraphics, PointList *poPoint)
{
// Есть ли точки для отображения?
if (poPoint->poNext)
{
//Создание пера для рисования
Pen *poPen = Pen(Color::Red);
//Рисование линии от текущей точки к следующей
poGraphics->DrawLine(poPen, poPoint->nX, poPoint->nY, роPoint->poNext->nX, poPoint->poNext->nY);
}
}
};

...



На строке:
Pen *poPen = Pen(Color::Red);

получаю ошибку:
.\5.cpp(38) : error C3604: 'System::Drawing::Pen': can only create a managed object on the gc heap

Поясните, пожалуйста, что же мне с этим делать?smile

Ещё интересна такая вещь - многие примеры из книги компилируются только в режиме /clr:oldSyntax - с чем это связано?

Спасибо!
PM MAIL   Вверх
Remiznik
Дата 12.5.2009, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(penb @ 12.5.2009,  18:17)

На строке:
Pen *poPen = Pen(Color::Red);

я не у верен но при  содздание  обекта  через указатель нужно использовать оператор new !

тоесть так !

Код

Pen *poPen =new  Pen(Color::Red);

PM MAIL   Вверх
NightmareZ
Дата 12.5.2009, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


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

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



Код

Pen^ poPen = gcnew Pen(Color::Red);



--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
penb
Дата 13.5.2009, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Remiznik, большое сппасибо всё получилось!

Продолжаем дебагить:

Код

class PointList
{
public:
int nX;
int nY;
PointList *poNext ;
//Получение координат новой точки
};


//Отображение точек на экране
void DrawPoint(Graphics *poGraphics, PointList *poPoint)
{
// Есть ли точки для отображения?
if (poPoint->poNext)
{
//Создание пера для рисования
Pen *poPen = new Pen(Color::Red);
//Рисование линии от текущей точки к следующей
poGraphics->DrawLine(poPen, poPoint->nX, poPoint->nY, роPoint->poNext->nX, poPoint->poNext->nY);
}
}


На строку:
Код

poGraphics->DrawLine(poPen, poPoint->nX, poPoint->nY, роPoint->poNext->nX, poPoint->poNext->nY);


Ругается мол:
'роPoint' : undeclared identifier

Хотя двумя строками выше в условии poPoint ещё проходит. Как это пониимать?


PM MAIL   Вверх
math64
Дата 14.5.2009, 08:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

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



У тебя ро русскими буквами написано
PM   Вверх
penb
Дата 14.5.2009, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



math64, ты гений, большое спасибо!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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