找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1046|回复: 11

[求助] ObjectARX2016无法加载arx所需的dll

[复制链接]

已领礼包: 4个

财富等级: 恭喜发财

发表于 2017-3-8 08:51:46 | 显示全部楼层 |阅读模式

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

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

×
在使用ObjectARX2016开发时,发现无法加载arx同文件夹下的dll文件。我在ObjectARX2012之前版本都使用同样的dll,都可以成功加载。
dll.png
dll和加载的arx同一文件夹内。请问这个是什么原因?需要做出什么设置吗?谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 13个

财富等级: 恭喜发财

发表于 2017-3-8 08:59:00 | 显示全部楼层
你确定2012前的ARX可以加载不在SUPPORT,系统目录下的DLL?

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

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

 楼主| 发表于 2017-3-8 09:34:28 | 显示全部楼层

按照你说的,objectARX2016放在系统目录Support里,就可以加载了。
但我之前的2012前的版本,dll都是放在arx同目录就可以了啊。
2010dll.png
下面是我objectarx2010的acrxEntrypoint.cpp的代码:
  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. ** 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 "DocumentReactor.h"
  27. #include "EditorReactor.h"
  28. #include "AboutUs.h"
  29. //-----------------------------------------------------------------------------
  30. #define szRDS _RXST("LiYu")
  31. DocumentReactor* pDocumentReactor = NULL;
  32. EditorReactor* pEditorReactor = NULL;
  33. //-----------------------------------------------------------------------------
  34. //----- ObjectARX EntryPoint
  35. class CClient_2010App : public AcRxArxApp {

  36. public:
  37.         CClient_2010App () : AcRxArxApp () {}

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

  40.                 // You *must* call On_kInitAppMsg here
  41.                 AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ;
  42.                
  43.                 // TODO: Add your initialization code here
  44.                 Encryption ecrtyption;
  45.                 ecrtyption.AddMenu(false);

  46.                 if(pEditorReactor == NULL)
  47.                         pEditorReactor = new EditorReactor();
  48.                 if(pDocumentReactor == NULL)
  49.                         pDocumentReactor = new DocumentReactor();

  50.                 return (retCode) ;
  51.         }

  52.         virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
  53.                 // TODO: Add your code here
  54.                 if (pEditorReactor!=NULL)
  55.                 {
  56.                         delete pEditorReactor;
  57.                         pEditorReactor = NULL;
  58.                 }
  59.                 if (pDocumentReactor != NULL)
  60.                 {
  61.                         delete pDocumentReactor;
  62.                         pDocumentReactor = NULL;
  63.                 }

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

  66.                 // TODO: Unload dependencies here

  67.                 return (retCode) ;
  68.         }

  69.         virtual void RegisterServerComponents () {
  70.                 //----- Self-register COM server upon loading.
  71.                 if ( FAILED(::DllRegisterServer ()) )
  72.                         acutPrintf (_RXST("Failed to register COM server.\n")) ;
  73.         }


  74.         // - LiYuClient_2010._ShowAboutUs command (do not rename)
  75.         static void LiYuClient_2010_ShowAboutUs(void)
  76.         {
  77.                 // Add your code for command LiYuClient_2010._ShowAboutUs here
  78.                 CAcModuleResourceOverride resOverride;
  79.                 //显示ObjectARX的模态对话框
  80.                 AboutUs theDialog;
  81.                 theDialog.DoModal();
  82.         }

  83.         // - LiYuClient_2010._Test command (do not rename)
  84.         static void LiYuClient_2010_Test(void)
  85.         {
  86.                 // Add your code for command LiYuClient_2010._Test here
  87.                 //sdebug
  88.                 AcDbDatabase *pCurrentDatabase = acdbHostApplicationServices()->workingDatabase();
  89.                 AcGePoint3d extMax = pCurrentDatabase->extmax();
  90.                 AcGePoint3d extMin = pCurrentDatabase->extmin();
  91.                 //edebug
  92.         }
  93. } ;

  94. //-----------------------------------------------------------------------------
  95. IMPLEMENT_ARX_ENTRYPOINT(CClient_2010App)

  96. ACED_ARXCOMMAND_ENTRY_AUTO(CClient_2010App, LiYuClient_2010, _ShowAboutUs, ShowAboutUs, ACRX_CMD_TRANSPARENT, NULL)
  97. ACED_ARXCOMMAND_ENTRY_AUTO(CClient_2010App, LiYuClient_2010, _Test, Test, ACRX_CMD_TRANSPARENT, NULL)


此外,我在objectarx2016里面创建objectARX MFCSupport类,无法填写Dialog ID,如下图:
MFCSupportObjectarx.png MFCSupportObjectarx2.png
请问这个是为什么?我把UAC调到最低,重启电脑后用管理员模式安装了objectarx2016,目录也都是用默认的,没有修改,请问这个问题你知道如何解决吗?谢谢你。。。这几天被新版本搞的头大。


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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2017-3-8 09:39:55 来自手机 | 显示全部楼层
用VS的添加MFC资源和类,手动修改CDialog为CAcUiDialog
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2017-3-8 09:50:53 | 显示全部楼层

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

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

 楼主| 发表于 2017-3-8 10:48:12 | 显示全部楼层

我没有添加别的arx。我先用vs编写算法DLL(这个dll不依赖objectARX),然后把算法头文件加到arx项目里,添加算法的 lib 文件支持,然后把dll文件放到arx项目的Debug文件夹下面,生成的arx也在这个Debug文件夹下,然后就用AutoCAD调试,可以正常加载Debug文件夹下的arx文件。当然这个方法我只在ObjectARX2012以前可以,2012以后的版本就不行了。汗,原来我之前用的才是非主流的方法。
请问我现在用ObjectARX2016,如果也希望能加载arx文件同目录下的dll文件,需要在 InitApp 函数中添加什么方法或者模式吗?谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

 楼主| 发表于 2017-3-8 11:05:17 | 显示全部楼层

十分、十分感谢。。。
然后我发现,所谓的工具条没有也无所谓了,直接把以前的反应器拷贝过来就行了。
原来完全可以手写,就是继承的类不同。
汗。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-3-8 11:15:02 | 显示全部楼层

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

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

 楼主| 发表于 2017-3-8 13:56:00 | 显示全部楼层

CAD安装目录下有个support文件夹,这个我找到了。请问系统目录是什么?环境变量吗?我把dll所在文件夹设置为环境变量也不行。
十分感谢!!!

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-3-8 14:49:43 | 显示全部楼层
本帖最后由 newer 于 2017-3-8 14:52 编辑

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

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

 楼主| 发表于 2017-3-8 16:32:34 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 04:11 , Processed in 0.424723 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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