请问VC6在制作支持MFC的ATL控件的时候,引用theApp出错的问题

sproll 2005-09-21 08:05:51
我做了一个ATL项目,并在里面添加了一个ATL控件,在编写这个控件的时候,我想用theApp对象的m_hInstance,但VC6老是报出错,说theApp未定义。
我在控件的CPP文件前面添加
extern CPrjChameleonApp theApp;
则报这句代码出错。
请问各位是如何在使用VC6制作支持MFC的ATL控件时,引用theApp的?
VS2003中的支持MFC的ATL控件中,在声明了extern CPrjChameleonApp theApp;
之后,就可以引用theApp的说,而且theApp的类型也与VC6不同,
extern CPrjChameleonApp NEAR theApp;
多了一个NEAR
...全文
180 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sproll 2005-09-24
  • 打赏
  • 举报
回复
太谢谢了。
老夏Max 2005-09-21
  • 打赏
  • 举报
回复
CComModule::m_hInst
这个对象就是模块(控件)的实例句柄。
老夏Max 2005-09-21
  • 打赏
  • 举报
回复
2003没有使用过。呵呵,就VC6的ATL来说它一般只有一个类似MFC的theApp的定义:
CComModule _Module;
它是一个全局的变量,起到类似theApp的作用。如果你是想使用MFC中的类,直接包含相关的头文件即可。如果是其他的可以直接使用这个全局变量获得相关的全局信息。
sproll 2005-09-21
  • 打赏
  • 举报
回复
不行。ATL项目和MFC EXE项目有点不一样,它的线程类的头文件PrjChameleonApp.h是在编译的时候自动生成的,里面还包含IDL文件中的接口定义。
VC生成的工程框架中线程类的声明是放在PrjChameleonApp.cpp文件中的。
我没办法改PrjChameleonApp.h。
快乐鹦鹉 2005-09-21
  • 打赏
  • 举报
回复
extern CPrjChameleonApp theApp;
这句话加在CPrjChameleonApp类头文件的最后,即这个类定义结束后进行申明。其它要用theApp的类只需要包含这个app头文件即可。
app类创建时就会在cpp中申明一个CPrjChameleonApp theApp;
提供了基于BP(Back Propagation)神经网络结合PID(比例-积分-微分)控制策略的Simulink仿真模型。该模型旨在实现对杨艺所著论文《基于S函数的BP神经网络PID控制器及Simulink仿真》中的理论进行实践验证。在Matlab 2016b环境下开发,经过测试,确保能够正常运行,适合学习和研究神经网络在控制系统中的应用。 特点 集成BP神经网络:模型中集成了BP神经网络用于提升PID控制器的性能,使之能更好地适应复杂控制环境。 PID控制优化:利用神经网络的自学习能力,对传统的PID控制算法进行了智能调整,提高控制精度和稳定性。 S函数应用:展示了如何在Simulink中通过S函数嵌入MATLAB代码,实现BP神经网络的定制化逻辑。 兼容性说明:虽然开发于Matlab 2016b,但理论上兼容后续版本,可能会需要调整少量配置以适配不同版本的Matlab。 使用指南 环境要求:确保你的电脑上安装有Matlab 2016b或更高版本。 模型加载: 下载本仓库到本地。 在Matlab中打开.slx文件。 运行仿真: 调整模型参数前,请先熟悉各模块功能和输入输出设置。 运行整个模型,观察控制效果。 参数调整: 用户可以自由调节神经网络的层数、节点数以及PID控制器的参数,探索不同的控制性能。 学习和修改: 通过阅读模型中的注释和查阅相关文献,加深对BP神经网络与PID控制结合的理解。 如需修改S函数内的MATLAB代码,建议有一定的MATLAB编程基础。

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧