查看单个帖子
旧 2009-04-18, 07:35 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】请帮我看看这个代码有什么问题?

请帮我看看这个代码有什么问题?
请帮我看看这个代码有什么问题?
acdbobjectid createline()
{
acgepoint3d startpoint(10.0,10.0,0.0);
acgepoint3d endpoint(20.0,20.0,0.0);
acdbline *pline=new acdbline(startpoint,endpoint);
acdbblocktable *pblocktable;
acdbcurdwg()->getblocktable(pblocktable,acdb::kforread);
acdbblocktablerecord *pblocktablerecord;
pblocktable->getat(acdb_model_space,pblocktablerecord,acdb::kforwrite);
pblocktable->close();
acdbobjectid lineid;
pblocktablerecord->appendacdbentity(lineid,pline);
pblocktablerecord->close();
pline->close()
编译时说:e:\objectarx
这应该是常规情况下类的成员函数不能用作函数指针的问题!你把 createline()函数定义成静态函数(如:static void createline()),注意,你若想定义成一个命令,不应有返回值,
另外:
aced_arxcommand_entry_auto(carxproject2app, arxproject2, test, mycommand1, acrx_cmd_transparent, createline【你原来是null】)
还有,代码里acdbcurdwg()应该是别人定义一个返回当前数据库的函数,但却没有看到,应该用acdbhostapplicationservices()->workingdatabase()来替代。
*******************
e_mail : siebeneagle@yahoo.com.cn
msn : siebeneagle@hotmail.com
qq : 812928665
居然把代码放在卸载arx函数里面????放在这里试试// todo: add your initialization code here
代码里acdbcurdwg()应该是别人定义一个返回当前数据库的函数,但却没有看到,应该用acdbhostapplicationservices()->workingdatabase()来替代。 对的。。。。。
aced_arxcommand_entry_auto(carxproject2app, arxproject2, test, mycommand1, acrx_cmd_transparent, createline【你原来是null】)
对的。。。。。
哈哈
用好的心态学好来
楼主说的对 注意字母的大小写!
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)