error C2228: “.FillSampleValues”的左边必须有类/结构/联合

sealeave 2014-10-23 09:36:19
编译环境VS2010 只添加了一个teechart控件,程序错误的地方如下:

void CTeeCHARTDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TCHART, m_chart);
}
error C2664: “DDX_Control”: 不能将参数 3 从“CTchart *”转换为“CWnd &”

BOOL CTeeCHARTDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();

// 将“关于...”菜单项添加到系统菜单中。

// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标

// TODO: 在此添加额外的初始化代码
m_chart.Series(0).FillSampleValues(50);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}

error C2228: “.Series”的左边必须有类/结构/联合
1> 类型是“CTchart *”
1> 是否改用“->”?
error C2228: “.FillSampleValues”的左边必须有类/结构/联合

求高人解答,困扰了好久了。。。
...全文
859 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
彭思敏861067011 2016-09-08
  • 打赏
  • 举报
回复
照楼上说的改了,提示错误未定义标识符CSeries
彭思敏861067011 2016-09-08
  • 打赏
  • 举报
回复
请问问题现在解决了吗??我也遇到同样问题,怎么解决的,求指点~~~~~
bluegate 2015-11-09
  • 打赏
  • 举报
回复
把Series定义改成如下: CSeries Series(long SeriesIndex) { LPDISPATCH result; static BYTE parms[] = VTS_I4 ; InvokeHelper(0x38, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms, SeriesIndex); return CSeries(result); }
向立天 2014-11-24
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
sealeave 2014-10-24
  • 打赏
  • 举报
回复
m_chart和series都是是tchart类的,fillsamplevalues是series类的,类型是void。这两个函数都是添加控件类是自己生成的。
快乐鹦鹉 2014-10-24
  • 打赏
  • 举报
回复
既然是LP开头的类型,那应该是指针类型了。 但我估计你直接.FillSampleValues(50)还是会有问题。 应该需要对LPDISPATCH类型进行一个转换才行。你确定一下,FillSampleValues函数是哪个类的函数,可能需要将LPDISPATCH转换为该类的指针类型
sealeave 2014-10-24
  • 打赏
  • 举报
回复
Series定义是 LPDISPATCH Series(long SeriesIndex) { LPDISPATCH result; static BYTE parms[] = VTS_I4 ; InvokeHelper(0x38, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms, SeriesIndex); return result; } teechart的变量可以用指针么?
快乐鹦鹉 2014-10-24
  • 打赏
  • 举报
回复
不清楚Series(0)是什么类型,如果是LPDISPATCH,那么可以用一下指针
sealeave 2014-10-24
  • 打赏
  • 举报
回复
指针那个是粗心弄错了,可是把m_chart类型改了以后 m_chart.Series(0).FillSampleValues(50); 这句仍然报错 error C2228: “.FillSampleValues”的左边必须有类/结构/联合 1> 类型是“LPDISPATCH” 1> 是否改用“->”? 本人菜鸟 求解答
快乐鹦鹉 2014-10-24
  • 打赏
  • 举报
回复
error C2664: “DDX_Control”: 不能将参数 3 从“CTchart *”转换为“CWnd &” 从这个错误看出来,你这个m_chart显然是一个指针类型啊,所以才有你列出的这些错误。不清楚你为什么定义成指针类型

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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