azusa 发表于 2005-3-24 15:49:00

比较而言,ObjectArx 比Lisp 要容易一些,只要你入门了

dfydfydfy 发表于 2005-3-31 13:16:00

请问我新建了一个空dll,在。.cpp文件中加


#include "afxwin.h"<BR>#include "aced.h"<BR>#include &lt;rxregsvc.h&gt;<BR>#include "rxmfcapi.h"


但是他不认acedRegCmds-&gt;addCommand


error C2664: 'addCommand' : cannot convert parameter 5 from 'void (__cdecl *)(struct tagMSG *)' to 'void (__cdecl *)(void)'<BR>                                                       This conversion requires a reinterpret_cast, a C-style cast or function-style cast


望那位高手指点迷津

paulo 发表于 2005-4-6 09:19:00

各位大哥,我是菜鸟,请问这样才算入门呢?


顺便请教一下:我要做一个“DWG文件版本管理”,也就是DWG文件的SourceSafe,但是我刚刚接触ObjectARX,哪位大哥能不能给我点指导性的意见,比如说给个如何实现的框架。当然,能有更详尽的指导,小弟感激不尽!

pqs001 发表于 2005-5-17 11:00:00

文档锁定后,没有解锁,却又进行其它操作,也有可能造成acad的崩溃

cld_zjy 发表于 2005-6-6 16:27:00

我如何调试objectarx

arbyao 发表于 2005-6-26 11:30:00

用.net2002和arx2004不能调试


调试时出现错误提示


"acad.exe 中的 0x77fb14f4 处未处理的异常:0xC0000142: DLL Initialization Failed 。"


编译时出现警告


       正在创建库 Debug/ArxProject3.lib 和对象 Debug/ArxProject3.exp<BR>rxapi.lib(libinit.obj) : warning LNK4099: 未发现 PDB“msvc.pdb”有“D:\ARXSDK\ObjectARX2006\lib\rxapi.lib”或者在“d:\Visual Studio Projects\ArxProject3\Debug\msvc.pdb”中;正在链接对象,如同没有调试信息一样<BR>acedapi.lib(acedstub.obj) : warning LNK4099: 未发现 PDB“corehdr.pdb”有“D:\ARXSDK\ObjectARX2006\lib\acedapi.lib”或者在“d:\Visual Studio Projects\ArxProject3\Debug\corehdr.pdb”中;正在链接对象,如同没有调试信息一样<BR>acedapi.lib(acedcls.obj) : warning LNK4099: 未发现 PDB“corehdr.pdb”有“D:\ARXSDK\ObjectARX2006\lib\acedapi.lib”或者在“d:\Visual Studio Projects\ArxProject3\Debug\corehdr.pdb”中;正在链接对象,如同没有调试信息一样<BR>


怎么办?

anston 发表于 2005-8-9 15:06:00

<P>我也出现了和12楼一样的问题</P>
<P>void initApp();<BR>void unloadApp(); </P>
<P>AcDbObjectId createLine(); //该函数应如何申明?</P>
<P>void initApp()<BR>{ <BR>&nbsp;&nbsp;&nbsp; // register a command with the AutoCAD command mechanism<BR>&nbsp;&nbsp;&nbsp; acedRegCmds-&gt;addCommand("CREATELINE_COMMANDS",<BR>&nbsp;&nbsp;&nbsp; "Createline",<BR>&nbsp;&nbsp;&nbsp; "SimpleLine",<BR>&nbsp;&nbsp;&nbsp; ACRX_CMD_TRANSPARENT,<BR>&nbsp;&nbsp;&nbsp; createLine);<BR>}</P>
<P>void unloadApp()<BR>{ <BR>&nbsp;&nbsp;&nbsp; acedRegCmds-&gt;removeGroup("CREATELINE_COMMANDS");</P>
<P>}</P>
<P>AcDbObjectId<BR>createLine()<BR>{</P>
<P>&nbsp;&nbsp;&nbsp; ...</P>
<P>}</P>
<P>调试出现一个错误:</P><PRE>正在编译...
CreateLine.cpp
e:\...\CreateLine.cpp(18) : error C2664: “AcEdCommandStack::addCommand” : </PRE><PRE>不能将参数 5 从“AcDbObjectId (void)”转换为“AcRxFunctionPtr”
      UDT 返回值的不兼容调用约定</PRE><PRE>应如何解决?
</PRE>

风之助 发表于 2005-8-20 14:20:00

<P>To 17楼:</P>
<P>AcEdCommandStack::addCommand Function 声明:</P>
<P class=signature>virtual Acad::ErrorStatus</P>
<P class=signature>addCommand(</P>
<P class=signatureIn>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char* cmdGroupName,</P>
<P class=signatureIn>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char* cmdGlobalName,</P>
<P class=signatureIn>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const char* cmdLocalName,</P>
<P class=signatureIn>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adesk::Int32 commandFlags,</P>
<P class=signatureIn>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AcRxFunctionPtr FunctionAddr,</P>
<P class=signatureIn>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AcEdUIContext * UIContext = NULL,</P>
<P class=signatureIn>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int fcode = -1,</P>
<P class=signatureIn>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HINSTANCE hResourceHandle = NULL,</P>
<P class=signatureInEnd>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AcEdCommand** cmdPtrRet = NULL) = 0;</P>
<P>第五个参数为函数指针,参见accmd.h中定义:</P>
<P>typedef void (*AcRxFunctionPtr) ();</P>
<P>故第五个参数必须为如下形式函数的函数名:</P>
<P>void fuctoinname()</P>
<P>{</P>
<P>}</P>

hulei_accp 发表于 2005-9-7 18:08:00

<P>调试时,老是说"fatal error C1001: INTERNAL COMPILER ERROR",</P>
<P>而且指向 "AC_IMPLEMENT_EXTENSION_MODULE(theArxDLL);"之处,请问这是什么原因,如何解决啊?</P>

arbyao 发表于 2006-2-11 11:56:00

移植到2005下无法加载是什么原因呢?

<P>我在2000i下写的程序,可是在2006+net2002下可以编译通过,但出现警告</P>
<P>acedapi.lib(acedstub.obj) : warning LNK4099: 未发现 PDB“corehdr.pdb”有“D:\ARXSDK\ObjectARX2006\lib\acedapi.lib”或者在“e:\czb\Visual Studio Projects\CADTools\Debug\corehdr.pdb”中;正在链接对象,如同没有调试信息一样<BR>acedapi.lib(acedcls.obj) : warning LNK4099: 未发现 PDB“corehdr.pdb”有“D:\ARXSDK\ObjectARX2006\lib\acedapi.lib”或者在“e:\czb\Visual Studio Projects\CADTools\Debug\corehdr.pdb”中;正在链接对象,如同没有调试信息一样<BR></P>
<P>然后在调试时却不能加载</P>
<P>提示</P>
<P>acrxGetApiVersion 在 E:\czb\Visual Studio Projects\CADTools\debug\ChCADUI.arx <BR>中未找到。<BR>确定与 rxapi.lib 存在有效的应用程序链接并输出该符号。AcRxDynamicLinker <BR>加载“E:\czb\Visual Studio Projects\CADTools\debug\ChCADUI.arx”失败</P>
<P>不知道是为什么啊?</P>
页: 1 [2] 3 4 5 6 7
查看完整版本: [讨论]ObjectARX调试问题大搜集