我不知道如何在表单和另一个头文件之间共享数据。 变量输入存在问题。 我不知道如何声明它可以从表单中访问。主要计算在other.h中。 我想在表单中设置一个变量并将其发送到other.h,计算并返回表单。 如何声明int输入?
请注意: 问题是btnWrong
// Form1.h
#pragma once
#include "other.h"
namespace VariablesandDebugging {
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
/// </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::PictureBox^ pictureBox1;
private: System::Windows::Forms::Label^ lblHeader1;
private: System::Windows::Forms::Button^ btnRight;
private: System::Windows::Forms::Button^ btnWrong;
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
//My variables
private:
int iInches;
int iFeet;
bool bConvertingToInches;//???
int iConvertedInches;
int iRozpeti;
#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->btnRight = (gcnew System::Windows::Forms::Button());
this->btnWrong = (gcnew System::Windows::Forms::Button());
//
// btnConvert
//
this->btnRight->Location = System::Drawing::Point(60, 60);
this->btnRight->Text = L"In Form1";
this->btnRight->Click += gcnew System::EventHandler(this, &Form1::btnRight_Click);
this->Controls->Add(this->btnRight);
//
// btnExit
//
this->btnWrong->Location = System::Drawing::Point(60, 150);
this->btnWrong->Text = L"In other.h";
this->btnWrong->Click += gcnew System::EventHandler(this, &Form1::btnWrong_Click);
this->Controls->Add(this->btnWrong);
}
#pragma endregion
public: System::Void btnWrong_Click(System::Object^ sender, System::EventArgs^ e) {
getfavoritenumber2(a, b);
MessageBox::Show(Convert::ToString(a));
MessageBox::Show(Convert::ToString(b));
}
public: System::Void btnRight_Click(System::Object^ sender, System::EventArgs^ e) {
input = 10;
getfavoritenumber3(a, b, output);
MessageBox::Show(Convert::ToString(a));
MessageBox::Show(Convert::ToString(b));
MessageBox::Show(Convert::ToString(output));
}
};
}
//other.h
#ifndef _OTHER_H_
#define _OTHER_H_
int a;
int b;
int input;
void getfavoritenumber2(int &a, int &b)
{
a = 3;
b = 6;
}
void getfavoritenumber3(int &a, int &b, int &output)
{
a = 3;
b = 6;
output = input*input;
}
#endif
非常感谢
答案 0 :(得分:0)
您可以使用文件范围静态变量。
但是这个非常古老而糟糕的主意,所以考虑全局/外部