| 
	
		
		
			| Результаты поиска |  |  |  | 
| scripto | Дата: Суббота, 04 Июня 2011, 10:45 | Сообщение # 1 | Тема: массив в builder c== 2010 |  | был не раз Сейчас нет на сайте | Здравствуйте!Можно ли в builder c++ 2010 посмотреть значения всех элементов динамически созданного массива,не вбивая необходимые элементы в watches? |  |  |  |  |  | 
| scripto | Дата: Вторник, 19 Апреля 2011, 08:09 | Сообщение # 2 | Тема: Как найти ошибку?(builder 6 c++) |  | был не раз Сейчас нет на сайте | Привет,всем.Помогите отловить на какой срочке и из-за чего вылетает ошибка "...raised exception class "Invalid pointer operation".Программу прилагаю с примером в архиве. Программка
 |  |  |  |  |  | 
| scripto | Дата: Воскресенье, 10 Апреля 2011, 11:19 | Сообщение # 3 | Тема: Массив Point в WindowsForm |  | был не раз Сейчас нет на сайте | Спасибо.А так,по учебе нужно написать прогу с графом, уже писал подобное на builder,на winapi,на с# ,а тут возникли непредвиденные проблемы как видишь.Еще раз спасибо.Думаю,что дальше разберусь.Может порекомендуешь какую-нибудь литиратуру по clr с c++? |  |  |  |  |  | 
| scripto | Дата: Суббота, 09 Апреля 2011, 01:05 | Сообщение # 4 | Тема: Массив Point в WindowsForm |  | был не раз Сейчас нет на сайте | Я попробовал как ты и сказал-выдает ошибку: 
 Code  Ошибка    2    error LNK2028: ссылка на неразрешенную лексему (0A00000A) "void __clrcall draw_top(int &,cli::array<class System::Drawing::Point >^)" (?draw_top@@$$FYMXAAHP$01AVPoint@Drawing@System@@@Z) в функции "private: void __clrcall graph_inwindowsform::Form1::Form1_MouseDown(class System::Object ^,class System::Windows::Forms::MouseEventArgs ^)" (?Form1_MouseDown@Form1@graph_inwindowsform@@$$FA$AAMXP$AAVObject@System@@P$AAVMouseEventArgs@Forms@Windows@4@@Z)    graph_in windowsform.obj
 Не посмотришь ли программу?она по сути пустая,вот с этим бы разобраться.И спасибо за совет-учту! http://yemsalat.org/go/upload.php
 Добавлено (09.04.2011, 01:05)---------------------------------------------
 
 Quote Как со стеной разговариваю... http://tinyurl.com/6jg4oja
 Буквально в первых ссылках и описание проблемы и решение.
 Не срабатывает!Пробую-все ругается и ругается компилятор |  |  |  |  |  | 
| scripto | Дата: Пятница, 08 Апреля 2011, 00:59 | Сообщение # 5 | Тема: Массив Point в WindowsForm |  | был не раз Сейчас нет на сайте | попробую отпишусь Добавлено (08.04.2011, 00:59)---------------------------------------------
 Не огли бы поподробнее об этом,попробовал так
 
 Code #pragma once #include "Graphic.h"
 using namespace System::Drawing;
 
 ref class GlobalObjects {
 public:
 static array<System::Drawing::Point> ^points;
 
 };
 
 #define nmax = 1000;
 
 int n = 0;    //количество вершин
 
 namespace graph_inwindowsform {
 
 using namespace System;
 using namespace System::ComponentModel;
 using namespace System::Collections;
 using namespace System::Windows::Forms;
 using namespace System::Data;
 using namespace System::Drawing;
 
 
 
 
 /// <summary>
 /// Сводка для Form1
 ///
 /// Внимание! При изменении имени этого класса необходимо также изменить
 ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
 ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
 ///          конструкторы не смогут правильно работать с локализованными
 ///          ресурсами, сопоставленными данной форме.
 /// </summary>
 public ref class Form1 : public System::Windows::Forms::Form
 {
 public:
 Form1(void)
 {
 InitializeComponent();
 //
 //TODO: добавьте код конструктора
 //
 
 }
 
 protected:
 /// <summary>
 /// Освободить все используемые ресурсы.
 /// </summary>
 ~Form1()
 {
 if (components)
 {
 delete components;
 }
 }
 private: System::Windows::Forms::RadioButton^  radioButton1;
 protected:
 private: System::Windows::Forms::RadioButton^  radioButton2;
 
 private:
 /// <summary>
 /// Требуется переменная конструктора.
 /// </summary>
 System::ComponentModel::Container ^components;
 
 #pragma region Windows Form Designer generated code
 /// <summary>
 /// Обязательный метод для поддержки конструктора - не изменяйте
 /// содержимое данного метода при помощи редактора кода.
 /// </summary>
 void InitializeComponent(void)
 {
 this->radioButton1 = (gcnew System::Windows::Forms::RadioButton());
 this->radioButton2 = (gcnew System::Windows::Forms::RadioButton());
 
 this->SuspendLayout();
 //
 // radioButton1
 //
 this->radioButton1->AutoSize = true;
 this->radioButton1->Checked = true;
 this->radioButton1->Location = System::Drawing::Point(747, 95);
 this->radioButton1->Name = L"radioButton1";
 this->radioButton1->Size = System::Drawing::Size(85, 17);
 this->radioButton1->TabIndex = 0;
 this->radioButton1->TabStop = true;
 this->radioButton1->Text = L"radioButton1";
 this->radioButton1->UseVisualStyleBackColor = true;
 //
 // radioButton2
 //
 this->radioButton2->AutoSize = true;
 this->radioButton2->Location = System::Drawing::Point(747, 141);
 this->radioButton2->Name = L"radioButton2";
 this->radioButton2->Size = System::Drawing::Size(85, 17);
 this->radioButton2->TabIndex = 1;
 this->radioButton2->Text = L"radioButton2";
 this->radioButton2->UseVisualStyleBackColor = true;
 //
 // Form1
 //
 this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
 this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
 this->ClientSize = System::Drawing::Size(892, 466);
 this->Controls->Add(this->radioButton2);
 this->Controls->Add(this->radioButton1);
 this->Name = L"Form1";
 this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
 this->Text = L"Лабораторная работа №6 Работа с графом с помощью WindowsForms";
 this->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseDown);
 this->ResumeLayout(false);
 this->PerformLayout();
 
 }
 #pragma endregion
 
 private: System::Void Form1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
 Graphics ^g = this->CreateGraphics();
 Point P = e->Location;
 points = gcnew array<Point>(100500);
 //нарисовать вершины
 if(this->radioButton1->Checked)
 {
 
 draw_top(n, points);
 }
 
 //  graphic.draw_top(ref n, point, P, g);
 
 }
 };
 }
 
 
Но выдает ошибку:
 1>d:\documents\etudes\6семестр\сппо\lab\lab6_graph\graph_in windowsform\Form1.h(125) : error C2065: points: необъявленный идентификатор
 1>d:\documents\etudes\6семестр\сппо\lab\lab6_graph\graph_in windowsform\Form1.h(130) : error C2065: points: необъявленный идентификатор
 |  |  |  |  |  | 
| scripto | Дата: Четверг, 07 Апреля 2011, 22:06 | Сообщение # 6 | Тема: Как объявить инициализировать глобальный массив Point в clr? |  | был не раз Сейчас нет на сайте | Привет всем.Нужно объявить глобальный массив,и в другом месте создавать его динамически.Приложение типа windowsForm Application(visual studio 2008 c++).пробовал так: 
 Code #pragma once #include "Graphic.h"
 
 #define nmax = 1000;
 array<Point>^ points;
 int n = 0;    //количество вершин
 
 namespace graph_inwindowsform {
 
 using namespace System;
 using namespace System::ComponentModel;
 using namespace System::Collections;
 using namespace System::Windows::Forms;
 using namespace System::Data;
 using namespace System::Drawing;
 
 
 
 
 /// <summary>
 /// Сводка для Form1
 ///
 /// Внимание! При изменении имени этого класса необходимо также изменить
 ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
 ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
 ///          конструкторы не смогут правильно работать с локализованными
 ///          ресурсами, сопоставленными данной форме.
 /// </summary>
 public ref class Form1 : public System::Windows::Forms::Form
 {
 public:
 Form1(void)
 {
 InitializeComponent();
 //
 //TODO: добавьте код конструктора
 //
 points = gcnew array<Point>(1000);
 }
 
 protected:
 /// <summary>
 /// Освободить все используемые ресурсы.
 /// </summary>
 ~Form1()
 {
 if (components)
 {
 delete components;
 }
 }
 private: System::Windows::Forms::RadioButton^  radioButton1;
 protected:
 private: System::Windows::Forms::RadioButton^  radioButton2;
 
 private:
 /// <summary>
 /// Требуется переменная конструктора.
 /// </summary>
 System::ComponentModel::Container ^components;
 
 #pragma region Windows Form Designer generated code
 /// <summary>
 /// Обязательный метод для поддержки конструктора - не изменяйте
 /// содержимое данного метода при помощи редактора кода.
 /// </summary>
 void InitializeComponent(void)
 {
 this->radioButton1 = (gcnew System::Windows::Forms::RadioButton());
 this->radioButton2 = (gcnew System::Windows::Forms::RadioButton());
 
 this->SuspendLayout();
 //
 // radioButton1
 //
 this->radioButton1->AutoSize = true;
 this->radioButton1->Checked = true;
 this->radioButton1->Location = System::Drawing::Point(747, 95);
 this->radioButton1->Name = L"radioButton1";
 this->radioButton1->Size = System::Drawing::Size(85, 17);
 this->radioButton1->TabIndex = 0;
 this->radioButton1->TabStop = true;
 this->radioButton1->Text = L"radioButton1";
 this->radioButton1->UseVisualStyleBackColor = true;
 //
 // radioButton2
 //
 this->radioButton2->AutoSize = true;
 this->radioButton2->Location = System::Drawing::Point(747, 141);
 this->radioButton2->Name = L"radioButton2";
 this->radioButton2->Size = System::Drawing::Size(85, 17);
 this->radioButton2->TabIndex = 1;
 this->radioButton2->Text = L"radioButton2";
 this->radioButton2->UseVisualStyleBackColor = true;
 //
 // Form1
 //
 this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
 this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
 this->ClientSize = System::Drawing::Size(892, 466);
 this->Controls->Add(this->radioButton2);
 this->Controls->Add(this->radioButton1);
 this->Name = L"Form1";
 this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
 this->Text = L"Лабораторная работа №6 Работа с графом с помощью WindowsForms";
 this->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseDown);
 this->ResumeLayout(false);
 this->PerformLayout();
 
 }
 #pragma endregion
 
 private: System::Void Form1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
 Graphics ^g = this->CreateGraphics();
 Point P = e->Location;
 
 //нарисовать вершины
 if(this->radioButton1->Checked)
 {
 draw_top(n, points);
 }
 
 //  graphic.draw_top(ref n, point, P, g);
 
 }
 };
 }
 
 
но выдает следующую ошибку:
 1>------ Построение начато: проект: graph_in windowsform, Конфигурация: Debug Win32 ------
 1>Компиляция...
 1>graph_in windowsform.cpp
 1>d:\documents\etudes\6семестр\сппо\lab\lab6_graph\graph_in windowsform\Form1.h(7) : error C3145: points: глобальная или статическая переменная не может быть управляемого типа "cli::array<Type> ^"
 1> with
 1> [
 1> Type=System::Drawing::Point
 1> ]
 1> может не объявлять глобальную или статичную переменную или элемент собственного типа, который относится к объекту в куче сборщика мусора
 1>Журнал построения был сохранен в "file://d:\Documents\etudes\6семестр\сппо\lab\lab6_graph\graph_in windowsform\Debug\BuildLog.htm"
 1>graph_in windowsform - ошибок 1, предупреждений 0
 ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
 [/code]
 Пробовал и вариант как c Point *points таким образом:
 
 Code #pragma once #include "Graphic.h"
 using namespace System::Drawing;
 
 #define nmax = 1000;
 Point *points;
 int n = 0;    //количество вершин
 
 namespace graph_inwindowsform {
 
 using namespace System;
 using namespace System::ComponentModel;
 using namespace System::Collections;
 using namespace System::Windows::Forms;
 using namespace System::Data;
 using namespace System::Drawing;
 
 
 
 
 /// <summary>
 /// Сводка для Form1
 ///
 /// Внимание! При изменении имени этого класса необходимо также изменить
 ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
 ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
 ///          конструкторы не смогут правильно работать с локализованными
 ///          ресурсами, сопоставленными данной форме.
 /// </summary>
 public ref class Form1 : public System::Windows::Forms::Form
 {
 public:
 Form1(void)
 {
 InitializeComponent();
 //
 //TODO: добавьте код конструктора
 //
 
 }
 
 protected:
 /// <summary>
 /// Освободить все используемые ресурсы.
 /// </summary>
 ~Form1()
 {
 if (components)
 {
 delete components;
 }
 }
 private: System::Windows::Forms::RadioButton^  radioButton1;
 protected:
 private: System::Windows::Forms::RadioButton^  radioButton2;
 
 private:
 /// <summary>
 /// Требуется переменная конструктора.
 /// </summary>
 System::ComponentModel::Container ^components;
 
 #pragma region Windows Form Designer generated code
 /// <summary>
 /// Обязательный метод для поддержки конструктора - не изменяйте
 /// содержимое данного метода при помощи редактора кода.
 /// </summary>
 void InitializeComponent(void)
 {
 this->radioButton1 = (gcnew System::Windows::Forms::RadioButton());
 this->radioButton2 = (gcnew System::Windows::Forms::RadioButton());
 
 this->SuspendLayout();
 //
 // radioButton1
 //
 this->radioButton1->AutoSize = true;
 this->radioButton1->Checked = true;
 this->radioButton1->Location = System::Drawing::Point(747, 95);
 this->radioButton1->Name = L"radioButton1";
 this->radioButton1->Size = System::Drawing::Size(85, 17);
 this->radioButton1->TabIndex = 0;
 this->radioButton1->TabStop = true;
 this->radioButton1->Text = L"radioButton1";
 this->radioButton1->UseVisualStyleBackColor = true;
 //
 // radioButton2
 //
 this->radioButton2->AutoSize = true;
 this->radioButton2->Location = System::Drawing::Point(747, 141);
 this->radioButton2->Name = L"radioButton2";
 this->radioButton2->Size = System::Drawing::Size(85, 17);
 this->radioButton2->TabIndex = 1;
 this->radioButton2->Text = L"radioButton2";
 this->radioButton2->UseVisualStyleBackColor = true;
 //
 // Form1
 //
 this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
 this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
 this->ClientSize = System::Drawing::Size(892, 466);
 this->Controls->Add(this->radioButton2);
 this->Controls->Add(this->radioButton1);
 this->Name = L"Form1";
 this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
 this->Text = L"Лабораторная работа №6 Работа с графом с помощью WindowsForms";
 this->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseDown);
 this->ResumeLayout(false);
 this->PerformLayout();
 
 }
 #pragma endregion
 
 private: System::Void Form1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
 Graphics ^g = this->CreateGraphics();
 Point P = e->Location;
 
 //нарисовать вершины
 if(this->radioButton1->Checked)
 {
 draw_top(n, points);
 }
 
 //  graphic.draw_top(ref n, point, P, g);
 
 }
 };
 }
 
 
Еще не создаю динамически,а уже ругается.Такая же ошибка.Нужно бы создать динамически,глобальный массив в Form1.h
 |  |  |  |  |  | 
| scripto | Дата: Суббота, 02 Апреля 2011, 22:32 | Сообщение # 7 | Тема: Массив Point в WindowsForm |  | был не раз Сейчас нет на сайте | То есть я никак не смогу воспользоваться данными записанными в массив points,создфнные через array из другого файла? |  |  |  |  |  | 
| scripto | Дата: Суббота, 02 Апреля 2011, 22:08 | Сообщение # 8 | Тема: Массив Point в WindowsForm |  | был не раз Сейчас нет на сайте | То есть можно объявить array<Point> ^points;
 а в другом месте инициализировать:
 points = = gcnew array<Point>(100500);?
  И где обявить в Form1.h глобальную такую переменную после этого    Code  #pragma once 
 namespace graph_inwindowsform {
 
 using namespace System;
 using namespace System::ComponentModel;
 using namespace System::Collections;
 using namespace System::Windows::Forms;
 using namespace System::Data;
 using namespace System::Drawing;
 
 |  |  |  |  |  | 
| scripto | Дата: Суббота, 02 Апреля 2011, 21:28 | Сообщение # 9 | Тема: Массив Point в WindowsForm |  | был не раз Сейчас нет на сайте | Да,приложение типа WindowsFormApplication. 
 Quote void draw_top(int &n, array<Point> ^point)На это не ругается.
  пробовал и так: Code void draw_top(int &n, Point *points);Как вызывать эти функции?
 И в файле Form1.h
 где объявить глобальный массив?Хотелось бы что-то типа
 Point *p;
  а создавать динамически массив в другом месте Добавлено (02.04.2011, 21:28)---------------------------------------------
 Предложите вариант?необязательно именно Point.В Builder писал
 void __fastcall TForm1::Image1Click(TObject *Sender)
 {
 //раставить вершины
 if(RadioButton1->Checked)
 draw_top(n, point);
 ...
 а функции объявлялась в другом файле как
 void draw_top(int &n, POINT point[])
  А тут как лучше? |  |  |  |  |  | 
| scripto | Дата: Суббота, 02 Апреля 2011, 21:02 | Сообщение # 10 | Тема: Массив Point в WindowsForm |  | был не раз Сейчас нет на сайте | 1>d:\documents\etudes\6семестр\сппо\lab\lab6_graph\graph_in windowsform\Graphic.h(9) : error C2728: System::Drawing::Point: собственный массив не может содержать этот управляемый тип 1> Вы имели в виду "array<System::Drawing::Point>"?
  В c# с такими проблемами не сталкивался,в winapi тоже.А тут не поиму,что не так.Это и есть весь код.Пусть заработает просто это,тело функции потом будет.Суть то не в этом Добавлено (02.04.2011, 21:02)---------------------------------------------
 Нужно бы в файле Form1.h.и что-то типа:
 Point *p;
 а создавать массив динамически в друом месте.Где Point встроенная структура(не POINT от МFC!!!!)
 |  |  |  |  |  | 
| scripto | Дата: Суббота, 02 Апреля 2011, 20:48 | Сообщение # 11 | Тема: Массив Point в WindowsForm |  | был не раз Сейчас нет на сайте | Вы вообще знаете как передается массив?Если не разбираетесь,то не давайте пожалуйста безответственных комментариев. |  |  |  |  |  | 
| scripto | Дата: Суббота, 02 Апреля 2011, 12:16 | Сообщение # 12 | Тема: Массив Point в WindowsForm |  | был не раз Сейчас нет на сайте | Привет всем.Подскажите пожалуйста как в проекте WindowsForm в заголовочном файле объявить один из параметров как массив Point. Пробовал так
  #include "stdafx.h" #include "Form1.h"
 using namespace System::Drawing;
  //расставить вершины void draw_top(int &n, Point point[]);
  Но компилятор ругается.Что нужно подключить? И вообще как создать глобальный массив Point и где?
 |  |  |  |  |  | 
| scripto | Дата: Понедельник, 28 Марта 2011, 11:51 | Сообщение # 13 | Тема: Дайте, пожалуйста, совет по графике |  | был не раз Сейчас нет на сайте | Привет. У меня 3х-мерная сцена, состаящая из параллелепипеда,пирамиды и усеченной пирамиды.Сцену нужно описать полигональной сеткой.Никаких графических библиотек типа openGl использовать нельзя. Так вот как лучше мне их задать? -каждый объект отдельно(создать класс для каждого объекта)?
 -как 1 список многоугольников ?
  Описание сцены нужно хранить в файле,можно там еще хранить и какие-то описания объекта,например цвет |  |  |  |  |  | 
| scripto | Дата: Суббота, 18 Декабря 2010, 22:39 | Сообщение # 14 | Тема: Проблема с типами в VC++ 2008 |  | был не раз Сейчас нет на сайте | я сделал следующим образом if(GetOpenFileName(&ofn))
 return 1;
 else
 return 0;
  а спомощью твоего варианта просто сначала проверил значение этой функции и наконец получил 1.Возникает такой вопрос.В свойствах проекта включено юникод.И потому код OPENFILENAME ofn;
 char szFilters[80]="Двоичные файлы\0*.dat\0 Все файлы\0 *.*\0";
 char szFileTitle[15];
 FileName[0]='\0';
 
 memset(&ofn,0,sizeof(OPENFILENAME));
 ofn.lStructSize=sizeof(OPENFILENAME);
 ofn.hwndOwner=hWnd;
 ofn.lpstrFilter=szFilters;
 ofn.nFilterIndex=1;
 ofn.lpstrFile=FileName;
 ofn.nMaxFile=(int)sizeof(FileName);
 ofn.lpstrFileTitle=szFileTitle;
 ofn.nMaxFileTitle=sizeof(szFileTitle);
 if(GetOpenFileName(&ofn))
 return 1;
 else
 return 0;
 выдает у меня ошибку невозможно преобразовать 'char [80]' в 'LPCWSTR'
 и также для других char/Но мне говорят ,что срабатывает у других несмотря на юникод.Чем это может быть вызвано у меня?
 |  |  |  |  |  | 
| scripto | Дата: Суббота, 18 Декабря 2010, 22:25 | Сообщение # 15 | Тема: Проблема с типами в VC++ 2008 |  | был не раз Сейчас нет на сайте | Я нашел ошибку.Но спасибо большое за отклик.Ошибка была до функции,а именно было extern TCHAR FileName[];
 исправил на extern TCHAR FileName[100];
 и все заработало
 |  |  |  |  |  | 
| scripto | Дата: Суббота, 18 Декабря 2010, 21:51 | Сообщение # 16 | Тема: Проблема с типами в VC++ 2008 |  | был не раз Сейчас нет на сайте | Помогите пожалуйста. имеется функция
 int GetFileName(HWND hWnd)
 {
 OPENFILENAME ofn;
 TCHAR szFilter[80] = L"TextFiles\0 *.txt\0";
 TCHAR szFileTitle[80];
 FileName[0] = '\0';
 szFileTitle[0] = '\0';
 memset(&ofn,0,sizeof(ofn));
 ofn.lStructSize = sizeof(ofn);
 ofn.hwndOwner = hWnd;
 ofn.lpstrFilter = szFilter;
 ofn.nFilterIndex = 1;
 ofn.lpstrFile = FileName;
 ofn.nMaxFile = sizeof(FileName);
 ofn.lpstrFileTitle = szFileTitle;
 ofn.nMaxFileTitle = sizeof(szFileTitle);
 
 int a = GetOpenFileName(&ofn);
 if(GetOpenFileName(&ofn))
 return 1;
 else
 return 0;
  }   она все время возвращает 0.Почему?несмотря на то.что файл выбран |  |  |  |  |  
 |