0
저는 지금 당분간이 문제를 해결할 방법을 찾고있었습니다. 내가 가진 것은 표준 Form1.h이며 일부 전역 변수는 선언되어있다. 별도의 .cpp 파일에있는 함수에서이 양식의 속성에 액세스하려고합니다. 그래서 여기 내가 이러한 목표를 달성하려고하는 방법이다 :함수에서 폼의 속성에 액세스
//Form1.h
#pragma once
#include "stdafx.h"
#include "test.h"
unsigned char vMAC1;
unsigned char vMAC2;
unsigned char vMAC3;
unsigned char vMAC4;
unsigned char vMAC5;
unsigned char vMAC6;
extern long pNum;
//ARP Variables
unsigned char gMAC1;
unsigned char gMAC2;
unsigned char gMAC3;
unsigned char gMAC4;
unsigned char gMAC5;
unsigned char gMAC6;
extern unsigned char mMAC1;
extern unsigned char mMAC2;
extern unsigned char mMAC3;
extern unsigned char mMAC4;
extern unsigned char mMAC5;
extern unsigned char mMAC6;
namespace Artemis_v {
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 System::Runtime::InteropServices;
using namespace System::Threading;
using System::IntPtr;
/// <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;
}
}
protected:
///// And so on just standard compiler-created statements..
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
ChangeText(this);
}
// test.h
#ifndef TEST_H
#define TEST_H
namespace Artemis_v
{
ref class Form1;
void ChangeText(Form1 ^frm);
}
#endif
// test.cpp
#include "StdAfx.h"
#include "test.h"
#include "Form1.h"
namespace Artemis_v
{
void ChangeFormText(Form1 ^frm)
{
frm->Text="Hello!";
}
}
이 코드는 내가 이미 오류를 정의 LNK2005 제공하고 난 Test.cpp에에 Form1.h을 포함하는 경우가 있기 때문에 내 변수를 다시 선언되는 알고있다. 이 문제에 대한 대안을 찾거나 변수를 제거해야합니까? 없이 변수를 선언해야합니다 당신의 .cpp 파일의
감사합니다 "통근"로 선언해야한다 양식의 핸들을 매개 변수로 함수에 전달하지 않고? – astralmaster