[quote=引用 12 楼 tajon1226 的回复:] 我那个只是伪代码,只是举个例子,你不能照搬的,我讲详细点吧 如果你的A对话框是主对话框 (就是最先弹出的那个) DlgA.cpp文件============ DlgA *g_pDlg = NULL; OnitDialog() { g_pDlg = this; } DlgA.h文件===================== extern DlgA *g_pDlg DlgB.cpp==================== #include "DlgA.h" Function { g_pDlg->m_port->WritePort(); }
我那个只是伪代码,只是举个例子,你不能照搬的,我讲详细点吧 如果你的A对话框是主对话框 (就是最先弹出的那个) DlgA.cpp文件============ DlgA *g_pDlg = NULL; OnitDialog() { g_pDlg = this; } DlgA.h文件===================== extern DlgA *g_pDlg DlgB.cpp==================== #include "DlgA.h" Function { g_pDlg->m_port->WritePort(); }
串口还没有打开
[quote=引用 4 楼 janehx 的回复:] [quote=引用 3 楼 a393062456 的回复:] 定义个对话框指针,然后传对应的对话框指针进去,再调用指针调用m_port写。 另外,你为什么要把写放到另外一个对话框里面去呢,有啥必要么。
[quote=引用 3 楼 a393062456 的回复:] 定义个对话框指针,然后传对应的对话框指针进去,再调用指针调用m_port写。 另外,你为什么要把写放到另外一个对话框里面去呢,有啥必要么。
[quote=引用 1 楼 tajon1226 的回复:] 你要这样看: 类函数 { 类变量->函数( ) 实际上等于 this->类变量->函数(); } 你的第二个对话框并没有对应的this指针。 下面是伪代码 方法一: class A { public: m_port; }; A g_DlgA; B::Test { g_DlgA.m_port->WritePort(); } 方法二: class A { private: m_port; public WritePort() { m_port.WritePort(); } }; A g_DlgA; B::Test { g_DlgA.WritePort(); }
CSerialPort m_Port; //另外类里面用你是不是定义的全局的啊 你描述的里面看不出问题 上代码跟调试信息
你要这样看: 类函数 { 类变量->函数( ) 实际上等于 this->类变量->函数(); } 你的第二个对话框并没有对应的this指针。 下面是伪代码 方法一: class A { public: m_port; }; A g_DlgA; B::Test { g_DlgA.m_port->WritePort(); } 方法二: class A { private: m_port; public WritePort() { m_port.WritePort(); } }; A g_DlgA; B::Test { g_DlgA.WritePort(); }
定义个对话框指针,然后传对应的对话框指针进去,再调用指针调用m_port写。 另外,你为什么要把写放到另外一个对话框里面去呢,有啥必要么。
3,245
社区成员
48,539
社区内容
加载中
试试用AI创作助手写篇文章吧