如何在C++中访问MFC窗体中的全局var



我在Windows窗体C++项目中实现了以下内容

template<class T> class MyQueue
{
    T *m_data;
    int m_numElements;
public:
    MyQueue() : m_data(NULL), m_numElements(0) { }
  ..... code .....
};
MyQueue<char> logData; // I need to acces it from Form1.h
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
    // Enabling Windows XP visual effects before any controls are created
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false); 
    // Create the main window and run it
    Application::Run(gcnew Form1());
    return 0;
}

我想在Form1.h中访问它在下

private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) 
{
  ??? MyQueue<char> logData; // I need to acces it 
}

有线索吗?

您可以声明logdata为静态。访问原始数据成员通常不被认为是好的做法,因此您可能还希望提供一种静态方法来将字符放入队列中。下面是一个关于C++中静态成员的教程。

http://www.tutorialspoint.com/cplusplus/cpp_static_members.htm

Form1类之外,提供

extern MyQueue<char> logData;

Form1_Load函数定义内部,只需访问它:

private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    logData.pop(); // Access it 
}

相关内容

  • 没有找到相关文章