Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++/CLI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Flammed
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 76
#1

2 Ошибки

24.05.2011, 13:15. Просмотров 1756. Ответов 15
Метки нет (Все метки)

Здравствуйте, кто-нибудь может мне помочь, у меня вот такие вот ошибки
Error 2 fatal error LNK1120: 1 unresolved externals C:\Users\silence\Documents\Visual Studio 2005\Projects\kursovaja\Debug\kursovaja.exe
Error 1 error LNK2020: unresolved token (06000004) kursovaja.Form1::StrToChar kursovaja.obj
вот код

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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
int dg1;
        float x1,y1,x2,y2; 
        double x,y,min,max,interval;
        array<float>^ a;                                    
        array<float>^ b;
        Bitmap^ bmp;
        Graphics^ gr;
        String^ FileName; 
        char* StrToChar(System::String^ string) ;
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 dg1->Rows->Clear();
                
                 min=Convert::ToInt32(textBox1->Text);
                  max=Convert::ToInt32(textBox2->Text);
                  interval=Convert::ToInt32(textBox3->Text);
                 for(x=min;x<max;x=x+interval)
                 {
                    if (x==1)
                        x++;
                    if (x==-1)
                        x++;
                    
                    y=sin(x)*x;
                        
                    dg1->Rows->Add(x,y);
 
                 }
             }
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
             a = gcnew array<float>(dg1->RowCount);
             b = gcnew array<float>(dg1->RowCount);
 
            
            
             Pen^ p=gcnew Pen(pictureBox1->BackColor);
             SolidBrush^ sb=gcnew SolidBrush(pictureBox1->BackColor);
           gr->FillRectangle(sb,0,0,pictureBox1->Width,pictureBox1->Height);
 
            
                a[0]=Convert::ToDouble(dg1->Rows[0]->Cells[0]->Value)+pictureBox1->Width/2;
                b[0]=Convert::ToDouble(dg1->Rows[0]->Cells[1]->Value)+pictureBox1->Height/2;
 
 
             for(int i=0;i<dg1->RowCount-1;i++) 
             {
                x1=Convert::ToDouble(dg1->Rows[i]->Cells[0]->Value);
                y1=Convert::ToDouble(dg1->Rows[i]->Cells[1]->Value);
                x2=Convert::ToDouble(dg1->Rows[i+1]->Cells[0]->Value);
                y2=Convert::ToDouble(dg1->Rows[i+1]->Cells[1]->Value);
                x1=x1+pictureBox1->Width/2;
                y1=y1+pictureBox1->Height/2;
                x2=x2+pictureBox1->Width/2;
                y2=y2+pictureBox1->Height/2;
 
 
gr->DrawLine(Pens::Black,x1,y1,x2,y2);
a[i+1]=x2;
b[i+1]=y2;
            }
             pictureBox1->Image=bmp;
            
             Drawing::Font^ drawFont = gcnew Drawing::Font("Arial", 13);
            
             {
             gr->DrawString("X",drawFont,Brushes::Black,400,150);
            gr->DrawString("0",drawFont,Brushes::Black,204,135);
            gr->DrawString("0",drawFont,Brushes::Black,204,10);
             }
             
            
        gr->DrawLine (Pens::Black,0, pictureBox1->Height/2, pictureBox1->Width,pictureBox1->Height/2);
             gr->DrawLine (Pens::Black,pictureBox1->Width/2, 0, pictureBox1->Width/2,pictureBox1->Height);
                             for (int a=0;a<pictureBox1->Width;a+=5)
                    gr->DrawLine (Pens::Black,a, pictureBox1->Height/2-3,a,pictureBox1->Height/2+3);
 
             for (int a=0;a<pictureBox1->Height;a+=5)
        gr->DrawLine (Pens::Black, pictureBox1->Width/2-3,a,pictureBox1->Width/2+3,a);
             
 
 
              
 
         }
         
private: System::Void openFileDialog1_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) {
              openFileDialog1->ShowDialog();
             Bitmap^ bmp=gcnew Bitmap(openFileDialog1->FileName);
             pictureBox1->Image=bmp;
         }
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
              bmp=gcnew Bitmap(pictureBox1->Width,pictureBox1->Height);
             gr=Graphics::FromImage(bmp);
         }
private: System::Void saveFileDialog1_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) {
             if(saveFileDialog1->ShowDialog()==Windows::Forms::DialogResult::OK)
             {
                String^ FileName;
                FileName=saveFileDialog1->FileName;
                float xtab,ytab;
                FILE* f=fopen(StrToChar(FileName),"wb");
                for(int i=0;i<dg1->RowCount;i++)
                {
                    xtab=Convert::ToDouble(dg1->Rows[i]->Cells[0]->Value);
                    ytab=Convert::ToDouble(dg1->Rows[i]->Cells[1]->Value);
                    fwrite(&xtab,sizeof(float),1,f);
                    fwrite(&ytab,sizeof(float),1,f);
                }
                fclose(f);
             }
         }
};
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2011, 13:15
Ответы с готовыми решениями:

Ошибки в потоках
void test() { Thread ^t = gcnew Thread(gcnew ThreadStart(this,...

Ошибки (необъявленные идентификаторы)
Что блин за ошибки? Че ему не нравится? #pragma once double...

Исправте мне ошибки!
Помогите, пожалуйста! Немогу никак понять в чем ошибка! Уже скоро с ума сойду!

Ошибки при конвертировании кода
Привет, уважаемые коллеги!! Написал программу на C++ , она работает, вот её...

Ошибки после закрытия программы
Есть форма. Есть 2 кнопки - старт и стоп. При загрузке формы загружается 1...

15
Ma3a
Эксперт С++
619 / 463 / 57
Регистрация: 28.01.2011
Сообщений: 605
24.05.2011, 13:29 #2
Заголовок функции StrToChar есть, а реализации нет. У System::String есть метод ToCharArray, воспользуйтесь им.
1
Flammed
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 76
24.05.2011, 13:37  [ТС] #3
Error 4 fatal error C1903: unable to recover from previous error(s); stopping compilation c:\users\silence\documents\visual studio 2005\projects\kursovaja\kursovaja\Form1.h 70
Error 3 error C3182: 'kursovaja::Form1' : a member using-declaration or access declaration is illegal within a managed type c:\users\silence\documents\visual studio 2005\projects\kursovaja\kursovaja\Form1.h 70
Error 2 error C2602: 'System::String::ToCharArray' is not a member of a base class of 'kursovaja::Form1' c:\users\silence\documents\visual studio 2005\projects\kursovaja\kursovaja\Form1.h 70
Error 1 error C2143: syntax error : missing ';' before 'System::ComponentModel::Container' c:\users\silence\documents\visual studio 2005\projects\kursovaja\kursovaja\Form1.h 70
теперь такое появилось орёт на System::ComponentModel::Container ^components;

как я понял нужно было вот так написать
private: System::String::ToCharArray

но я кажется ошибся
0
Ma3a
Эксперт С++
619 / 463 / 57
Регистрация: 28.01.2011
Сообщений: 605
24.05.2011, 13:45 #4
Цитата Сообщение от Flammed Посмотреть сообщение
private: System::String::ToCharArray
Вот этого не надо было. Этот метод у System::String по-умолчанию есть, не надо нигде ничего дополнительно прописывать.
А вообще с ToCharArray будет не очень удобно, тогда лучше поступить примерно так:

C++
1
2
3
char * char_filename = (char *)((void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(ss));
FILE* f=fopen(char_filename,"wb");
System::Runtime::InteropServices::Marshal::FreeHGlobal(cli::safe_cast<System::IntPtr>(char_filename));
Это в том месте, где вы вызывали StrToChar. Дополнительно, чтобы это заработало, нужно только подключить специальный заголовочный файл, где класс Marshal описан:
C++
1
#include <msclr\marshal.h>
1
Flammed
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 76
24.05.2011, 13:54  [ТС] #5
теперь у меня такая
Error 1 fatal error C1083: Cannot open include file: 'cmsclr\cmarshal.h': No such file or directory c:\users\silence\documents\visual studio 2005\projects\kursovaja\kursovaja\Form1.h 7

некоторые я могу исправить, в особенности которые постил, просто половину не знаю т.к. только учу...
0
Ma3a
Эксперт С++
619 / 463 / 57
Регистрация: 28.01.2011
Сообщений: 605
24.05.2011, 14:03 #6
Flammed, тогда попробуйте не включать этот файл, я в 2005 студии мало работал, может быть, там этого заголовка и нет, по сути, там важно только то, что внутри него подключается библиотека mscorlib.dll, а она наверняка должна быть и так подключена в свойствах проекта.
0
Flammed
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 76
24.05.2011, 14:10  [ТС] #7
без этого вот такие вот

Error 1 error C2143: syntax error : missing ';' before 'System::ComponentModel::Container' c:\users\silence\documents\visual studio 2005\projects\kursovaja\kursovaja\Form1.h 70
Error 2 error C2602: 'System::String::ToCharArray' is not a member of a base class of 'kursovaja::Form1' c:\users\silence\documents\visual studio 2005\projects\kursovaja\kursovaja\Form1.h 70
Error 3 error C3182: 'kursovaja::Form1' : a member using-declaration or access declaration is illegal within a managed type c:\users\silence\documents\visual studio 2005\projects\kursovaja\kursovaja\Form1.h 70
Error 4 fatal error C1903: unable to recover from previous error(s); stopping compilation c:\users\silence\documents\visual studio 2005\projects\kursovaja\kursovaja\Form1.h 70
и ругается на System::ComponentModel::Container ^components;
0
Ma3a
Эксперт С++
619 / 463 / 57
Регистрация: 28.01.2011
Сообщений: 605
24.05.2011, 14:16 #8
Вы скинули лишь отрывок кода, судя по всему? Я вот не вижу места, где даже объявляется ComponentModel::Container, так что сказать не могу, что у вас с ним. В ошибках фигурирует String::ToCharArray, покажите место, где он у вас воткнут.
0
Flammed
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 76
24.05.2011, 14:18  [ТС] #9
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
#pragma once
 
#include <stdio.h>
#include <cmath>
#include <string.h>
#include <stdlib.h>
namespace kursovaja {
 
    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>
    /// Summary for Form1
    ///
    /// WARNING: If you change the name of this class, you will need to change the
    ///          'Resource File Name' property for the managed resource compiler tool
    ///          associated with all .resx files this class depends on.  Otherwise,
    ///          the designers will not be able to interact properly with localized
    ///          resources associated with this form.
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: Add the constructor code here
            //
        }
 
    protected:
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    protected: 
    private: System::Windows::Forms::Button^  button2;
 
    private: System::Windows::Forms::Label^  label1;
    private: System::Windows::Forms::Label^  label2;
    private: System::Windows::Forms::Label^  label3;
    private: System::Windows::Forms::TextBox^  textBox1;
    private: System::Windows::Forms::TextBox^  textBox2;
    private: System::Windows::Forms::TextBox^  textBox3;
    private: System::Windows::Forms::PictureBox^  pictureBox1;
    private: System::Windows::Forms::DataGridView^  dg1;
 
    private: System::Windows::Forms::MenuStrip^  menuStrip1;
    private: System::Windows::Forms::OpenFileDialog^  openFileDialog1;
    private: System::Windows::Forms::SaveFileDialog^  saveFileDialog1;
    private: System::Windows::Forms::DataGridViewTextBoxColumn^  Column1;
    private: System::Windows::Forms::DataGridViewTextBoxColumn^  Column2;
    private: System::String::ToCharArray
 
        /// <summary>
        /// Required designer variable.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->button2 = (gcnew System::Windows::Forms::Button());
            this->label1 = (gcnew System::Windows::Forms::Label());
            this->label2 = (gcnew System::Windows::Forms::Label());
            this->label3 = (gcnew System::Windows::Forms::Label());
            this->textBox1 = (gcnew System::Windows::Forms::TextBox());
            this->textBox2 = (gcnew System::Windows::Forms::TextBox());
            this->textBox3 = (gcnew System::Windows::Forms::TextBox());
            this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
            this->dg1 = (gcnew System::Windows::Forms::DataGridView());
            this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
            this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog());
            this->saveFileDialog1 = (gcnew System::Windows::Forms::SaveFileDialog());
            this->Column1 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
            this->Column2 = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->BeginInit();
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dg1))->BeginInit();
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(268, 21);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(75, 23);
            this->button1->TabIndex = 0;
            this->button1->Text = L"button1";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // button2
            // 
            this->button2->Location = System::Drawing::Point(268, 50);
            this->button2->Name = L"button2";
            this->button2->Size = System::Drawing::Size(75, 23);
            this->button2->TabIndex = 1;
            this->button2->Text = L"button2";
            this->button2->UseVisualStyleBackColor = true;
            this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click);
            // 
            // label1
            // 
            this->label1->AutoSize = true;
            this->label1->Location = System::Drawing::Point(35, 21);
            this->label1->Name = L"label1";
            this->label1->Size = System::Drawing::Size(35, 13);
            this->label1->TabIndex = 3;
            this->label1->Text = L"label1";
            // 
            // label2
            // 
            this->label2->AutoSize = true;
            this->label2->Location = System::Drawing::Point(35, 48);
            this->label2->Name = L"label2";
            this->label2->Size = System::Drawing::Size(35, 13);
            this->label2->TabIndex = 4;
            this->label2->Text = L"label2";
            // 
            // label3
            // 
            this->label3->AutoSize = true;
            this->label3->Location = System::Drawing::Point(35, 74);
            this->label3->Name = L"label3";
            this->label3->Size = System::Drawing::Size(35, 13);
            this->label3->TabIndex = 5;
            this->label3->Text = L"label3";
            // 
            // textBox1
            // 
            this->textBox1->Location = System::Drawing::Point(94, 21);
            this->textBox1->Name = L"textBox1";
            this->textBox1->Size = System::Drawing::Size(100, 20);
            this->textBox1->TabIndex = 6;
            // 
            // textBox2
            // 
            this->textBox2->Location = System::Drawing::Point(94, 48);
            this->textBox2->Name = L"textBox2";
            this->textBox2->Size = System::Drawing::Size(100, 20);
            this->textBox2->TabIndex = 7;
            // 
            // textBox3
            // 
            this->textBox3->Location = System::Drawing::Point(94, 74);
            this->textBox3->Name = L"textBox3";
            this->textBox3->Size = System::Drawing::Size(100, 20);
            this->textBox3->TabIndex = 8;
            // 
            // pictureBox1
            // 
            this->pictureBox1->Location = System::Drawing::Point(38, 150);
            this->pictureBox1->Name = L"pictureBox1";
            this->pictureBox1->Size = System::Drawing::Size(409, 263);
            this->pictureBox1->TabIndex = 9;
            this->pictureBox1->TabStop = false;
            // 
            // dg1
            // 
            this->dg1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;
            this->dg1->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^  >(2) {this->Column1, this->Column2});
            this->dg1->Location = System::Drawing::Point(453, 2);
            this->dg1->Name = L"dg1";
            this->dg1->Size = System::Drawing::Size(240, 150);
            this->dg1->TabIndex = 10;
            // 
            // menuStrip1
            // 
            this->menuStrip1->Location = System::Drawing::Point(0, 0);
            this->menuStrip1->Name = L"menuStrip1";
            this->menuStrip1->Size = System::Drawing::Size(764, 24);
            this->menuStrip1->TabIndex = 11;
            this->menuStrip1->Text = L"menuStrip1";
            // 
            // openFileDialog1
            // 
            this->openFileDialog1->FileName = L"openFileDialog1";
            this->openFileDialog1->FileOk += gcnew System::ComponentModel::CancelEventHandler(this, &Form1::openFileDialog1_FileOk);
            // 
            // saveFileDialog1
            // 
            this->saveFileDialog1->FileOk += gcnew System::ComponentModel::CancelEventHandler(this, &Form1::saveFileDialog1_FileOk);
            // 
            // Column1
            // 
            this->Column1->HeaderText = L"Column1";
            this->Column1->Name = L"Column1";
            // 
            // Column2
            // 
            this->Column2->HeaderText = L"Column2";
            this->Column2->Name = L"Column2";
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(764, 467);
            this->Controls->Add(this->dg1);
            this->Controls->Add(this->pictureBox1);
            this->Controls->Add(this->textBox3);
            this->Controls->Add(this->textBox2);
            this->Controls->Add(this->textBox1);
            this->Controls->Add(this->label3);
            this->Controls->Add(this->label2);
            this->Controls->Add(this->label1);
            this->Controls->Add(this->button2);
            this->Controls->Add(this->button1);
            this->Controls->Add(this->menuStrip1);
            this->MainMenuStrip = this->menuStrip1;
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->EndInit();
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dg1))->EndInit();
            this->ResumeLayout(false);
            this->PerformLayout();
 
        }
        
        int dg1;
        float x1,y1,x2,y2; 
        double x,y,min,max,interval;
        array<float>^ a;                                    
        array<float>^ b;
        Bitmap^ bmp;
        Graphics^ gr;
        String^ FileName; 
        char* StrToChar(System::String^ string) ;
        char * char_filename = (char *)((void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(ss));
FILE* f=fopen(char_filename,"wb");
System::Runtime::InteropServices::Marshal::FreeHGlobal(cli::safe_cast<System::IntPtr>(char_filename));
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 dg1->Rows->Clear();
                
                 min=Convert::ToInt32(textBox1->Text);
                  max=Convert::ToInt32(textBox2->Text);
                  interval=Convert::ToInt32(textBox3->Text);
                 for(x=min;x<max;x=x+interval)
                 {
                    if (x==1)
                        x++;
                    if (x==-1)
                        x++;
                    
                    y=sin(x)*x;
                        
                    dg1->Rows->Add(x,y);
 
                 }
             }
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
             a = gcnew array<float>(dg1->RowCount);
             b = gcnew array<float>(dg1->RowCount);
 
            
            
             Pen^ p=gcnew Pen(pictureBox1->BackColor);
             SolidBrush^ sb=gcnew SolidBrush(pictureBox1->BackColor);
           gr->FillRectangle(sb,0,0,pictureBox1->Width,pictureBox1->Height);
 
            
                a[0]=Convert::ToDouble(dg1->Rows[0]->Cells[0]->Value)+pictureBox1->Width/2;
                b[0]=Convert::ToDouble(dg1->Rows[0]->Cells[1]->Value)+pictureBox1->Height/2;
 
 
             for(int i=0;i<dg1->RowCount-1;i++) 
             {
                x1=Convert::ToDouble(dg1->Rows[i]->Cells[0]->Value);
                y1=Convert::ToDouble(dg1->Rows[i]->Cells[1]->Value);
                x2=Convert::ToDouble(dg1->Rows[i+1]->Cells[0]->Value);
                y2=Convert::ToDouble(dg1->Rows[i+1]->Cells[1]->Value);
                x1=x1+pictureBox1->Width/2;
                y1=y1+pictureBox1->Height/2;
                x2=x2+pictureBox1->Width/2;
                y2=y2+pictureBox1->Height/2;
 
 
gr->DrawLine(Pens::Black,x1,y1,x2,y2);
a[i+1]=x2;
b[i+1]=y2;
            }
             pictureBox1->Image=bmp;
            
             Drawing::Font^ drawFont = gcnew Drawing::Font("Arial", 13);
            
             {
             gr->DrawString("X",drawFont,Brushes::Black,400,150);
            gr->DrawString("0",drawFont,Brushes::Black,204,135);
            gr->DrawString("0",drawFont,Brushes::Black,204,10);
             }
             
            
        gr->DrawLine (Pens::Black,0, pictureBox1->Height/2, pictureBox1->Width,pictureBox1->Height/2);
             gr->DrawLine (Pens::Black,pictureBox1->Width/2, 0, pictureBox1->Width/2,pictureBox1->Height);
                             for (int a=0;a<pictureBox1->Width;a+=5)
                    gr->DrawLine (Pens::Black,a, pictureBox1->Height/2-3,a,pictureBox1->Height/2+3);
 
             for (int a=0;a<pictureBox1->Height;a+=5)
        gr->DrawLine (Pens::Black, pictureBox1->Width/2-3,a,pictureBox1->Width/2+3,a);
             
 
 
              
 
         }
         
private: System::Void openFileDialog1_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) {
              openFileDialog1->ShowDialog();
             Bitmap^ bmp=gcnew Bitmap(openFileDialog1->FileName);
             pictureBox1->Image=bmp;
         }
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
              bmp=gcnew Bitmap(pictureBox1->Width,pictureBox1->Height);
             gr=Graphics::FromImage(bmp);
         }
private: System::Void saveFileDialog1_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) {
             if(saveFileDialog1->ShowDialog()==Windows::Forms::DialogResult::OK)
             {
                String^ FileName;
                FileName=saveFileDialog1->FileName;
                float xtab,ytab;
                FILE* f=fopen(StrToChar(FileName),"wb");
                for(int i=0;i<dg1->RowCount;i++)
                {
                    xtab=Convert::ToDouble(dg1->Rows[i]->Cells[0]->Value);
                    ytab=Convert::ToDouble(dg1->Rows[i]->Cells[1]->Value);
                    fwrite(&xtab,sizeof(float),1,f);
                    fwrite(&ytab,sizeof(float),1,f);
                }
                fclose(f);
             }
         }
};
}
0
Ma3a
Эксперт С++
619 / 463 / 57
Регистрация: 28.01.2011
Сообщений: 605
24.05.2011, 14:25 #10
Цитата Сообщение от Flammed Посмотреть сообщение
private: System::String::ToCharArray
Вот это недоразумение вырезать и должно заработать. У вас там даже точки с запятой нет, на что ругается компилятор, упоминая ComponentModel::Container. И еще есть ошибки, сейчас напишу.

Добавлено через 6 минут
C++
1
2
3
4
5
String^ FileName; 
char* StrToChar(System::String^ string) ;
char * char_filename = (char *)((void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(ss));
FILE* f=fopen(char_filename,"wb");
System::Runtime::InteropServices::Marshal::FreeHGlobal(cli::safe_cast<System::IntPtr>(char_filename));
начиная с 244 строки не должно быть этого там. Должно быть
C++
1
String ^ FileName;
и больше ничего.
Далее, вместо 340 строки вы как раз пишете
C++
1
2
3
char * char_filename = (char *)((void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(FileName));
FILE* f=fopen(char_filename,"wb");
System::Runtime::InteropServices::Marshal::FreeHGlobal(cli::safe_cast<System::IntPtr>(char_filename));
0
Flammed
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 76
24.05.2011, 14:35  [ТС] #11
Знаю, что достану сильно =))
Error 1 error C2373: 'kursovaja::Form1::dg1' : redefinition; different type modifiers c:\users\silence\documents\visual studio 2005\projects\kursovaja\kursovaja\Form1.h 232
ругается на 237 строку

dg1 это DataGridView у меня....
0
Вложения
Тип файла: zip kurs.zip (3.24 Мб, 15 просмотров)
Ma3a
Эксперт С++
619 / 463 / 57
Регистрация: 28.01.2011
Сообщений: 605
24.05.2011, 14:37 #12
На 237 строчке у вас dg1 еще раз определяется , только уже как int, просто вырежьте эту строчку.
1
Flammed
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 76
24.05.2011, 14:45  [ТС] #13
Спасибо, всё работает, но всё равно 1 проблема есть, но должен рисовать график,
я должен вводить
минимальное и максимальное значение "X" и интервал, но он ничего не рисует....
хотя в DataGrid он записывает значения
0
Ma3a
Эксперт С++
619 / 463 / 57
Регистрация: 28.01.2011
Сообщений: 605
24.05.2011, 14:58 #14
Всё рисуется,например, попробуйте задать от -100 до 100 с шагом 1, что-то нарисуется. Вы, видимо, масштаб не учли, потому как если задавать очень маленькие интервалы, то линии нарисуются, но будут длиной максимум в пару-тройку пикселей. В общем, если это не то, что нужно, то нужно учитывать масштаб изображения, переводить ваши значения из DataGrid'а в метрику pictureBox'а.
0
Flammed
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 76
24.05.2011, 15:01  [ТС] #15
Рисуются нормально, если только указывать -50 до 100 и больше... но всё равно спасибо огромное
0
Apprentice
5 / 5 / 0
Регистрация: 29.05.2011
Сообщений: 39
01.06.2011, 15:42 #16
в принципе решение как у мазы, но можно описать твою загадочную ф-цию StrToChar таким образом:
C++
1
2
3
4
5
6
private: char* StrToChar(String^ str)
    {
    IntPtr ptr = Marshal::StringToHGlobalAnsi(str);
    char* char_str = (char*)ptr.ToPointer();
        return char_str;
    }
вставляешь где нибудь и в неймспейсах объявляешь:
using namespace System::Runtime::InteropServices;
потом любую строку в си эквивалент переводишь этой ф-цией
0
01.06.2011, 15:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2011, 15:42

Ошибки компиляции с библиотекой curl
Добрый день, добавил либу curl, всё по инструкции, но при компиляции: ...

Как отследить ошибки в webrequest
Вот код: void web_request(String ^ url, String ^ data) { WebRequest^...

Ошибки при компиляции кода с fstream
Здравствуйте! При работе с библиотекой fstream появились странные ошибки даже...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru