Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
3 / 3 / 1
Регистрация: 11.05.2010
Сообщений: 45

С++/CLI VS2008 создать глобальный управляемый динамический массив Point

27.05.2010, 12:34. Показов 3983. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужен глобальный динамический массив типа Point для переопределения события onPaint.
При нажатии кнопки заполняется массив Pointов, потом по этому массиву рисуется в событии Paint кривая DrawCurve(pen,GptGraf);

Побывал так
Глобально объявляю
C++
1
array<Point>^ GptGraf;
Потом в Батон1клік

C++
1
ptGraf = gcnew array<Point>(GintSemp);
(GintSemp это размер)

Но не работает, пишет
error C3145: GptGraf: глобальная или статическая переменная не может быть управляемого типа "cli::array<Type> ^"

Как сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2010, 12:34
Ответы с готовыми решениями:

Как создать глобальный динамический массив и заполнить его
Всем привет! Мне нужно каким-то образом создать глобальный динамический массив и заполнить его. но когда я пишу вот так Module...

Глобальный динамический массив
В общем проблема вот в чем, пытаюсь сделать глобальный динамический массив структур но что-то идет не так. Странная ошибка с...

Глобальный динамический массив
Требуется создать несколько глобальных динамических массива, для расчетов. Чтобы потом эти массивы отрисовывать разными кнопками&quot;нажал...

3
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
27.05.2010, 19:17
Цитата Сообщение от xTANATOSx Посмотреть сообщение
Глобально объявляю
Что значит глобально? Вообще без класса?
Покажите полный код.
0
3 / 3 / 1
Регистрация: 11.05.2010
Сообщений: 45
28.05.2010, 00:53  [ТС]
Массив в строчке 34 объявляться, но возникает
error C3145: GptGraf: глобальная или статическая переменная не может быть управляемого типа "cli::array<Type> ^"

Потом в строчке 20 задается размер

А вообще мне нужно передать массив с точками с обработчика событий(в нем я получаю данные )
private: System::Void намалюватиToolStripMenuItem_Click

В переопределенное событие OnPaint protected:virtual void OnPaint( PaintEventArgs^ e ) override (строчка 52 в первом коде)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#pragma once
#include "stdafx.h"
#include    <windows.h>         //GetForegroundWindow
#include    "dsound.h"          
#include    <iostream>          
#include    <fstream>           
#include <Winuser.h>
 
#pragma comment(lib,"dsound.lib")   
#pragma comment(lib,"dxguid.lib")
#pragma warning(disable:4996)       //ОТключаем предупреждение strcat
#include <WinDef.h>
#include "Mmsystem.h"
#pragma comment(lib, "winmm.lib")
#include <vcclr.h>
#include <msclr/marshal.h>
 
namespace My4istovik {
    using namespace msclr::interop;
    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 std;
    using namespace System::IO;
    Int16 GintData[300000]; // <--!!!левак, розбазарювання казених байтів оператви
    int GintBait=2;// <--!!! байтовість данних,покищо тільки 2
    int GintSemp;  //Кількість семплів
    int Gintmc; //Кількість мілісекунд
    DWORD i,zoom; //тип для глобальних лічильників не дуже, зато всюди без глюків паше
    Boolean flag=false;
[B]array<Point>^ GptGraf;[/B]
    IDirectSound8   *g_pDirectSound;
    /// <summary>
    /// Сводка для Form1
    ///
    /// Внимание! При изменении имени этого класса необходимо также изменить
    ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
    ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
    ///          конструкторы не смогут правильно работать с локализованными
    ///          ресурсами, сопоставленными данной форме.
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
         virtual void OnPaint( PaintEventArgs^ e ) override
   {
 
      // If there is an image and it has a location,
      // paint it when the Form is repainted.
      Form::OnPaint( e );
      Color^ col = gcnew Color();
   Pen^ pen = gcnew Pen(col->Red); // или (Color::Red)
   Graphics^ im = Form1::CreateGraphics();
Point point1 = Point(50,50);
      Point point2 = Point(100,25);
   im->DrawLine(pen,point1, point2);
   }
 
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::MenuStrip^  menuStrip1;
    protected: 
    private: System::Windows::Forms::ToolStripMenuItem^  файлToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  відкритиToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  вихідToolStripMenuItem;
    private: System::Windows::Forms::TextBox^  textBox1;
    private: System::Windows::Forms::ToolStripMenuItem^  намалюватиToolStripMenuItem;
    private: System::Windows::Forms::Button^  button1;
    private: System::Windows::Forms::OpenFileDialog^  openFileDialog1;
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private: System::Void намалюватиToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
             //{
    Color^ col = gcnew Color();
    Pen^ pen = gcnew Pen(col->Red); // (Color::Red)
    Pen^ pen1 = gcnew Pen(Color::Black);
    Graphics^ im = Form1::CreateGraphics();
  // Point point1 = Point (Cursor->Position.X,Cursor->Position.Y);
 
    Point point1 = Point(30,130);
    Point point2 = Point(930,130);
    Point point3 = Point(930,630);
    Point point4 = Point(30,630);
    im->DrawLine(pen,point1, point2);
    im->DrawLine(pen,point2, point3);
    im->DrawLine(pen,point3, point4);
    im->DrawLine(pen,point4, point1);
   im->DrawLine(pen,30,380,930,380);
Point point;
 
[B]GptGraf = gcnew array <Point>(GintSemp);[/B]
 
              //array<Point>^ GptGraf = gcnew array<Point>(GintSemp);
Int16 t=0;
Int16 x=30;
Int16 y=0;
for (i=0;i<GintSemp;i++){
    if (t==50)
    {x++;
    t=0;}
    t++;
    y=(380-(GintData[i]/15));
    GptGraf[i]=Point(x,y);
 
}
im->DrawCurve(pen,GptGraf);
 
             //}
         }
Добавлено через 1 минуту

Массив в строчке 34 объявляться, но возникает
error C3145: GptGraf: глобальная или статическая переменная не может быть управляемого типа "cli::array<Type> ^"

Потом в строчке 20 задается размер

Добавлено через 5 минут
Мне нужно передать массив с точками с функции
private: System::Void намалюватиToolStripMenuItem_Click

В функцию protected:virtual void OnPaint( PaintEventArgs^ e ) override
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
28.05.2010, 01:16
Любая переменная должна быть в классе
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2010, 01:16
Помогаю со студенческими работами здесь

Глобальный динамический массив
в общем делаю одно задание в котором нужно создать некий динамический массив классов ну и далее работать с ними, при этом нужно...

Глобальный динамический двумерный массив
Вообще то задача на Си, но в разделе мало людей, поэтому пишу тут, помогите пожалуйста. Вообщем есть задача считать файл в функции init(),...

Глобальный динамический двумерный массив
Вообщем есть задача считать файл в функции init(), а массивы строк получившиеся в итоге объявить так чтоб они были доступны глобально. ...

Исправить ошибку "Point: собственный массив не может содержать этот управляемый тип"
ref class Point { public: int x,y; Point(){x=0;y=0;}; }; ref class Triangular { private:

Построение динамического массива в функции и его перевод в глобальный динамический массив
Здравствуйте, моя проблема заключается в передаче построеного в функции динамического массива fdarray в глобальный динамический массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru