#include "afxwin.h"<BR>#include "aced.h"<BR>#include <rxregsvc.h><BR>#include "rxmfcapi.h"
但是他不认acedRegCmds->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
望那位高手指点迷津 各位大哥,我是菜鸟,请问这样才算入门呢?
顺便请教一下:我要做一个“DWG文件版本管理”,也就是DWG文件的SourceSafe,但是我刚刚接触ObjectARX,哪位大哥能不能给我点指导性的意见,比如说给个如何实现的框架。当然,能有更详尽的指导,小弟感激不尽! 文档锁定后,没有解锁,却又进行其它操作,也有可能造成acad的崩溃 我如何调试objectarx 用.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>
怎么办? <P>我也出现了和12楼一样的问题</P>
<P>void initApp();<BR>void unloadApp(); </P>
<P>AcDbObjectId createLine(); //该函数应如何申明?</P>
<P>void initApp()<BR>{ <BR> // register a command with the AutoCAD command mechanism<BR> acedRegCmds->addCommand("CREATELINE_COMMANDS",<BR> "Createline",<BR> "SimpleLine",<BR> ACRX_CMD_TRANSPARENT,<BR> createLine);<BR>}</P>
<P>void unloadApp()<BR>{ <BR> acedRegCmds->removeGroup("CREATELINE_COMMANDS");</P>
<P>}</P>
<P>AcDbObjectId<BR>createLine()<BR>{</P>
<P> ...</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> <P>To 17楼:</P>
<P>AcEdCommandStack::addCommand Function 声明:</P>
<P class=signature>virtual Acad::ErrorStatus</P>
<P class=signature>addCommand(</P>
<P class=signatureIn> const char* cmdGroupName,</P>
<P class=signatureIn> const char* cmdGlobalName,</P>
<P class=signatureIn> const char* cmdLocalName,</P>
<P class=signatureIn> Adesk::Int32 commandFlags,</P>
<P class=signatureIn> AcRxFunctionPtr FunctionAddr,</P>
<P class=signatureIn> AcEdUIContext * UIContext = NULL,</P>
<P class=signatureIn> int fcode = -1,</P>
<P class=signatureIn> HINSTANCE hResourceHandle = NULL,</P>
<P class=signatureInEnd> AcEdCommand** cmdPtrRet = NULL) = 0;</P>
<P>第五个参数为函数指针,参见accmd.h中定义:</P>
<P>typedef void (*AcRxFunctionPtr) ();</P>
<P>故第五个参数必须为如下形式函数的函数名:</P>
<P>void fuctoinname()</P>
<P>{</P>
<P>}</P> <P>调试时,老是说"fatal error C1001: INTERNAL COMPILER ERROR",</P>
<P>而且指向 "AC_IMPLEMENT_EXTENSION_MODULE(theArxDLL);"之处,请问这是什么原因,如何解决啊?</P>
移植到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>