QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 920|回复: 9

`void*' is not a pointer-to-ob

[复制链接]
发表于 2004-8-2 19:05:58 | 显示全部楼层 |阅读模式
`void*' is not a pointer-to-object
这是编译时出的错误.
我想把(void*)转化成为别的类型,但是编译出这种错误,应该怎么办亚?
发表于 2004-8-2 19:11:34 | 显示全部楼层
你的代码?
回复

使用道具 举报

发表于 2004-8-2 19:12:30 | 显示全部楼层
你把你的代码帖出来看看吧,应该不能把void类型转化成别的类型吧,我自己这么觉得
回复

使用道具 举报

 楼主| 发表于 2004-8-2 19:14:36 | 显示全部楼层
////////// in .h file
typedef struct wndinfo{
       unsigned long winid;
       int widget_width;
        int widget_height;
}WNDINFO;

//////////// in .cpp file
Init( void* p )
{
        WNDINFO * widgetinfo;
        widgetinfo = (WNDINFO*)p;
        m_hDDrawWnd->winid         = widgetinfo->winid;
        m_hDDrawWnd->widget_width  = widgetinfo->widget_width;
        m_hDDrawWnd->widget_height = widgetinfo->widget_height;
}
编译采用的是 g++ -c a.cpp
回复

使用道具 举报

发表于 2004-8-2 19:15:56 | 显示全部楼层
void* p这一部分好像是错误的吧
回复

使用道具 举报

 楼主| 发表于 2004-8-2 19:16:54 | 显示全部楼层
我希望保持接口的一致性,所以接口采用void*
再内部转化不可以吗?
好像很多程序都是这么做的亚
回复

使用道具 举报

 楼主| 发表于 2004-8-2 19:18:21 | 显示全部楼层
这实际上是类的一个成员函数
m_hDDrawWnd是类的public成员
回复

使用道具 举报

发表于 2004-8-2 19:20:15 | 显示全部楼层
编译器总会说哪条语句有错吧?
回复

使用道具 举报

 楼主| 发表于 2004-8-2 19:24:35 | 显示全部楼层
我找到错在什么地方了.是我忘记了给成员改变类型.不好意思!
这是移植win下面的程序.正确的代码应该如下.谢谢大家热心帮助:
////////// in .h file
typedef struct wndinfo{
unsigned long winid;
int widget_width;
int widget_height;
}WNDINFO;
class a{
WNDINOF * m_hDDrawWnd;
Init(void *);
};



//////////// in .cpp file
a::Init( void* p )
{
WNDINFO * widgetinfo;
widgetinfo = (WNDINFO*)p;
m_hDDrawWnd->winid = widgetinfo->winid;
m_hDDrawWnd->widget_width = widgetinfo->widget_width;
m_hDDrawWnd->widget_height = widgetinfo->widget_height;
}
回复

使用道具 举报

发表于 2004-8-2 19:26:07 | 显示全部楼层
埋坑     
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 18:01 , Processed in 0.076825 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表