VS+TeeChart控件调试笔记
来源:互联网 发布:视频会议软件好? 编辑:程序博客网 时间:2024/05/22 16:00
VS+TeeChart控件调试笔记
情况说明:
光谱显示工程(64 Bit Window10+VS2015+TeeChart8),在原来的机子上能运行,拷贝之后运行不了。
问题所在:
导入TeeChart控件时,用了绝对路径,导致无法打开文件;另外,TeeChart8.ocx在使用时必须先注册,否则无效。而且只能在x86下运行,x64会意外中断。
解决方法:
把导入路径改成相对路径(已经修改完毕),然后注册TeeChart8.ocx,在x86下运行即可。
具体调试记录:
1. C1083 无法打开类型库文件:
“F:\\Hyperspectral\\USGS-SPLib06\\SP_Demo\\teechart\\TeeChart8.ocx”:No such file or directory SP_Demo e:\project\sp_demo\sp_demo\ctitles.h 3
【把路径(teechart文件夹)修改成相对路径,7个C**.h都要修改
#import "..\\teechart5+8\\TeeChart8.ocx" no_namespace】
2.触发中断
SP_Demo.exe!CSP_DemoApp::InitInstance()行 75 C++
注册
TeeChart8.ocx以后,换成32位运行即可。
先注册TeeChart8.ocx,再运行(x86)。
注册:如果是 64位机子,拷贝teechart文件夹中的TeeChart8.ocx到C:\Windows\SysWOW64中,然后以管理员身份运行cmd.exe,执行命令cd C:\Windows\SysWOW64 ,进入到这个目录,再执行regsvr32 TeeChart8.ocx(如果是32位机子,则拷贝到C:\Windows\System32,其他步骤类似)。
注册成功后, Release或Debug(x86),运行即可。
其他:(在网上查找的相关错误解决方法笔记)
1. 关于TeeChart控件
安装完了无非就用到个.ocx文件,还有就是自带很多MFC的例子,下载了个TeeChart的ocx文件,注册就好了。
若没有注册,则会显示:找不到#import**** TeeChart5.tlh
2. 关于中断在入口函数int nResponse =dlg.DoModal();处
int nResponse = dlg.DoModal();
//
有模式地显示这个对话框,直到对话框关闭。保存一个模式对话框的返回结果,如果是按ok退出的,则nResponse=IDOK,否则nResponse = IDCANCEL,这样就可以做不同的处理。
如果中断在此,可能的问题:
——》DoModal调用没有成功
——》没有为指针申请空间之类的问题
※看看InitDialog中是否有问题
※看看Dialog中是否有在运行机器上未注册的控件.
中断以后,用F11跟踪进去,以下是整理的网友的方法
断在某处
处理方法
备注
"CreateDlgIndirect"这个函数里面
【在vc140.pdb,MFCApplication1.pch文件中】
在代码中添加了ActiveX控件,确没有用到。所有果断的删去了
在dll中生成对话框,如果包括了ActiveX控件,在创建对话框失败时,需要考虑在CApp::InitInstance()中添加OleInitialize(NULL) & AfxEnableControlContainer()
if (CreateDlgIndirect(lpDialogTemplate, CWnd::FromHandle(hWndParent), hInst))
dialog resource找不到,或者,parent窗口没传对或不存在。
ASSERT(FALSE);
把资源中的某个控件删除了,
并且DoDataExchange还在使用这个控件的ID
查找对应的ID的DEFINE,看看是否在DoDataExchange使用。
并且此ID无相关的在.rc文件中的定义。
3. 删除了控件,但还在用ID
若是修改了控件,保存工程之后,再打开删除该控件,则resourse.h中还有该控件的信息,rc文件中没有。删除控件,需:1.删除控件方法的声明和实现(.h和.cpp中找到映射的函数名删除即可)2.如果控件有关联变量,要在相应的头文件中删除。3.在资源文件中删除相应的控件资源ID(如 :#define IDC_BUTTON1 100 )
4. 关于新建MFC工程调用TeeChar
http://www.cnblogs.com/qiengo/p/4238567.html
※类中的头文件第一句:#import "D:\\ProgramFiles\\TeeChart Pro v5 ActiveXControl\\TeeChart5.ocx",(自动加入import+ TeeChart5的安装路径)
都提示"Error:无法打开源文件E:\project\MFCApplication1\MFCApplication1\Debug\Teechart5.tlh"
注意:#include "CSeries.h"要放在MFCApplication1Dlg.cpp文件#include"stdafx.h"等后面
※CTChart.h中class CTChart : publicCOleDispatchDriver
ColeDispatchDriver不是类名或结构名
没有解决
※运行成功后出现一样的中断——intnResponse = dlg.DoModal();处
————》换成release X86即可。
- VS+TeeChart控件调试笔记
- VS之TeeChart控件的安装
- mfc笔记——teechart控件
- VS中MFC图表控件teechart使用的小Demo
- TeeChart控件基础
- TeeChart控件的应用
- VS2013 TeeChart控件使用方法
- 设置VS&IE8控件调试
- 三款ActiveX图表控件对比评测 TeeChart VS ProEssentials…
- 三款ActiveX图表控件对比评测 TeeChart VS ProEssentials…
- teechart使用笔记
- VC中使用TeeChart控件
- 图标控件的使用TeeChart
- VS2010 使用TeeChart绘图控件
- 图表控件TeeChart安装使用
- VS2010 使用TeeChart绘图控件
- Teechart v8在VS中的AddArray用法
- teechart
- ps -ef |grep 输出的具体含义
- maven eclipse 创建包后消失,资源文件不能被识别
- 自定义view-优酷菜单
- CI对数据库的常用操作
- hdu 1394 Minimum Inversion Number(树状数组逆序数)
- VS+TeeChart控件调试笔记
- 从零开始学C++之模板(三):缺省模板参数(借助标准模板容器实现Stack模板)、成员模板、关键字typename
- Linux+.NetCore+Nginx搭建集群
- 第四十四篇:Java 7新特性:自动化资源管理
- 一个二元二次有理式最值问题
- JavaScript数据类型
- *.exe exited with code 3
- Android音频焦点详解(上)
- Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结