找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1216|回复: 3

[求助] OBJECTARX添加的 C++类

[复制链接]
发表于 2014-3-20 22:28:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
这个问题 有些纠结 各位有没有试过啊!
这是新建的类的源码
  1. #pragma once
  2. #include "StdAfx.h"

  3. class Myclass
  4. {
  5. public:
  6.   Myclass(void);
  7.   ~Myclass(void);
  8. public:
  9.   static AcDbObjectId creatline();
  10. };
  11. AcDbObjectId Myclass::creatline()
  12. {
  13.   AcGePoint3d ptStart(0,0,0);
  14.   AcGePoint3d ptEnd(100,100,0);
  15.   AcDbLine *pLine=new AcDbLine(ptStart,ptEnd);

  16.   //获取块表
  17.   AcDbBlockTable *pBloTbl;
  18.   acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBloTbl,AcDb::kForRead);

  19.   //获取块表记录
  20.   AcDbBlockTableRecord *pBloTblRcd;
  21.   pBloTbl->getAt(ACDB_MODEL_SPACE,pBloTblRcd,kForWrite);

  22.   AcDbObjectId entId;
  23.   pBloTblRcd->appendAcDbEntity(entId,pLine);

  24.   pBloTbl->close();
  25.   pBloTblRcd->close();
  26.   pLine->close();
  27.   return entId;
  28. }
复制代码
入口点文件中代码如下:
  1. // (C) Copyright 2002-2007 by Autodesk, Inc.
  2. //
  3. // Permission to use, copy, modify, and distribute this software in
  4. // object code form for any purpose and without fee is hereby granted,
  5. // provided that the above copyright notice appears in all copies and
  6. // that both that copyright notice and the limited warranty and
  7. // restricted rights notice below appear in all supporting
  8. // documentation.
  9. //
  10. // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
  11. // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
  12. // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC.
  13. // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
  14. // UNINTERRUPTED OR ERROR FREE.
  15. //
  16. // Use, duplication, or disclosure by the U.S. Government is subject to
  17. // restrictions set forth in FAR 52.227-19 (Commercial Computer
  18. // Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
  19. // (Rights in Technical Data and Computer Software), as applicable.
  20. //

  21. //-----------------------------------------------------------------------------
  22. //----- acrxEntryPoint.cpp
  23. //-----------------------------------------------------------------------------
  24. #include "StdAfx.h"
  25. #include "resource.h"
  26. #include "Myclass.h"

  27. //-----------------------------------------------------------------------------
  28. #define szRDS _RXST("YS")

  29. //-----------------------------------------------------------------------------
  30. //----- ObjectARX EntryPoint
  31. class CArxProject3App : public AcRxArxApp {

  32. public:
  33.   CArxProject3App () : AcRxArxApp () {}

  34.   virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {
  35.     // TODO: Load dependencies here

  36.     // You *must* call On_kInitAppMsg here
  37.     AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ;
  38.    
  39.     // TODO: Add your initialization code here

  40.     return (retCode) ;
  41.   }

  42.   virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
  43.     // TODO: Add your code here

  44.     // You *must* call On_kUnloadAppMsg here
  45.     AcRx::AppRetCode retCode =AcRxArxApp::On_kUnloadAppMsg (pkt) ;

  46.     // TODO: Unload dependencies here

  47.     return (retCode) ;
  48.   }

  49.   virtual void RegisterServerComponents () {
  50.   }


  51.   // - YSArxProject3._MyCommand1 command (do not rename)
  52.   static void YSArxProject3_MyCommand1(void)
  53.   {
  54.     // Add your code for command YSArxProject3._MyCommand1 here
  55.     Myclass::creatline();
  56.   }
  57. } ;

  58. //-----------------------------------------------------------------------------
  59. IMPLEMENT_ARX_ENTRYPOINT(CArxProject3App)

  60. ACED_ARXCOMMAND_ENTRY_AUTO(CArxProject3App, YSArxProject3, _MyCommand1, MyCommand1, ACRX_CMD_TRANSPARENT, NULL)
复制代码
报错消息如下:

错误        1        error LNK2005: "public: static class AcDbObjectId __cdecl Myclass::creatline(void)" (?creatline@Myclass@@SA?AVAcDbObjectId@@XZ) 已经在 acrxEntryPoint.obj 中定义        Myclass.obj        ArxProject3

错误        2        fatal error LNK1169: 找到一个或多个多重定义的符号        E:\VS_CAD\ArxProject3\Win32\Debug/YSArxProject3.arx        ArxProject3





论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2014-4-10 22:37:20 | 显示全部楼层
汗居然没有人回  我已经搞定 了

点评

你怎么搞定的?  详情 回复 发表于 2014-4-10 22:55
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-4-10 22:55:45 | 显示全部楼层
小妖妖 发表于 2014-4-10 22:37
汗居然没有人回  我已经搞定 了

你怎么搞定的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-11 23:52:54 | 显示全部楼层
在入口点文件中添加#INCLUDE即可
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 12:26 , Processed in 0.409976 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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