2011-10-16 3 views
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 파일의

답변

1

하나 "통근"와, 얻을 수있는 더 좋은 방법은 알고 있지만 당신의 .H 파일은 이제 작동

+0

감사합니다 "통근"로 선언해야한다 양식의 핸들을 매개 변수로 함수에 전달하지 않고? – astralmaster

관련 문제