Satiata
@Satiata

Проблема с глобальным переменным(error lnk2001)?

При задании глобальной переменной выдает ошибку lnk2001.
Посмотрела возможные причины и переключила на /Zl по умолчанию. Теперь ошибок еще больше(все так же 2001). Каковы возможные причины?
Код предоставляю ниже

//Form1.h

int i;

	private: System::Void otvetButton_Click(System::Object^ sender, System::EventArgs^ e) {

				 double a, b, C, I, F, x;
				 int n;

				 a = Convert::ToDouble(aPredelText->Text);
				 b = Convert::ToDouble(bPredelText->Text);
				 n = Convert::ToInt32(nText->Text);
				 C = Convert::ToDouble(constText->Text);

				 if (constRadioButton->Checked) {
					 i = 1;
					 F = f(x,C);
				 }

				 if (stepenRadioButton->Checked) {
					 i = 2;
					 F = f_step(x,C);
				 }
 I = Integr(a, b, n, C);

				 otvet->Text = I.ToString("n");

			 }


//Integr.cpp
#pragma once
#include "stdafx.h"
#include "func.h"
#include "func_step.h"

extern int i;

double Integr (double a, double b, int n, double C)
{
  double x=a;
  double I=0;
  double h = (b - a)/n;
  while (x<b-h){
	  switch(i) {
		  case 1:
  {
    I += (f(x,C)+f(x+h,C))*h/2;
    x += h;
  }
  break;

		  case 2:
			   {
    I += (f_step(x,C)+f_step(x+h,C))*h/2;
    x += h;
  }
  break;
	  }
  }
  return I;
}
  • Вопрос задан
  • 2270 просмотров
Пригласить эксперта
Ответы на вопрос 1
maaGames
@maaGames
Погроммирую программы
extern int i; должно быть в хэдэре, а int i; в реализации.

#pragma once - тоже в хэдэре, а не в реализации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы