jw5858 发表于 2009-1-11 21:22:00

急求帮助!为什么CAdUiDockControlBar::Create()老失败

<p>因为工作需要,我从<font color="#ff0033">CAdUiDockControlBa</font>r派生了一个控制条类,然后创建一个CHILD对话框.其父窗口为这个控制条类,这样在创建控制条的时候将对话框也创建出来,就能让对话框停靠在CAD上.代码是在<font color="#ff0066">ObjectArx2002+VC6.0</font>下写的,因为要兼容CAD02~CAD08不同的版本,所以不同的环境选用了不同的Arx.现在一个很苦恼的问题一直困扰着我,在<font color="#ff0000">ObjectArx2007+VS2005</font>的环境下始终链接错误<font color="#ff0033">UeDlgDockControlBar.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: int __thiscall CAdUiDockControlBar::Create(</font>wchar_t const *,wchar_t const *,unsigned long,struct tagRECT const &amp;,class CWnd *,unsigned int,struct CCreateContext *)" (<a href="mailto:__imp_?Create@CAdUiDockControlBar@@QAEHPB_W0KABUtagRECT@@PAVCWnd@@IPAUCCreateContext@@@Z">__imp_?Create@CAdUiDockControlBar@@QAEHPB_W0KABUtagRECT@@PAVCWnd@@IPAUCCreateContext@@@Z</a>),该符号在函数 "public: virtual int __thiscall UeDlgDockControlBar::Create(class CWnd *,wchar_t const *,int)" (<a href="mailto:?Create@UeDlgDockControlBar@@UAEHPAVCWnd@@PB_WH@Z">?Create@UeDlgDockControlBar@@UAEHPAVCWnd@@PB_WH@Z</a>) 中被引用,</p><p>在VC6.0下写的那段代码如下:</p><p>#if defined ARX2007 &amp;&amp; !defined _UNICODE</p><p>BOOL UeDlgDockControlBar::Create (CWnd *pParent, LPCSTR lpszTitle) </p><p>{<br/>&nbsp;CString strWndClass ;<br/>&nbsp;strWndClass =AfxRegisterWndClass (CS_DBLCLKS, LoadCursor (NULL, IDC_ARROW)) ;<br/>&nbsp;CRect rect (0, 0, 250, 200) ;<br/>&nbsp;if ( FALSE == CAcUiDockControlBar::Create ( (LPCWSTR)(LPCTSTR)strWndClass, </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (LPCWSTR)(LPCTSTR)(lpszTitle), </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WS_VISIBLE | WS_CHILD |&nbsp;&nbsp; WS_CLIPCHILDREN,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rect, pParent, 0&nbsp;&nbsp;) )</p><p>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return (FALSE) ;</p><p>}</p><p>&nbsp;SetToolID (&amp;clsMyControl) ;</p><p>&nbsp;// TODO: Add your code here</p><p>&nbsp;return (TRUE) ;<br/>}*/<br/></p><p>#if defined ARX2007 &amp;&amp; !defined _UNICODE<br/>int UeDlgDockControlBar::OnCreate(LPCREATESTRUCTW lpCreateStruct) <br/>{<br/>&nbsp;if ( CAcUiDockControlBar::OnCreate (lpCreateStruct) == -1 )<br/>&nbsp;&nbsp;return (-1) ;<br/>&nbsp;//资源切换<br/>&nbsp;CAcModuleResourceOverride resourceOverride;</p><p>&nbsp;//创建对话框<br/>&nbsp;m_pDlgCurObject-&gt;Create( m_lDlgID, this );<br/>&nbsp;m_pDlgCurObject-&gt;MoveWindow( 0,0,10,10,TRUE );&nbsp;<br/>&nbsp;return (0) ;<br/>}</p><p>工程中所要链接的库我都做了相应的升级.如<font color="#ff0066">acdb15.lib</font>,都改成了<font color="#ff0066">acdb17</font>.</p><p>使用的lib目录也改成了Object2007下的lib目录.如果我单独在VS2005下用ObjARXWiz生成以上代码却没有任何问题,看了arx07下CAdUiDockControlBar::Create()是和OnCreate()是做了条件编译的,我也就加了条件编.我不晓得上面的问题的怎么出现的.是没有增加链接文件吗?<font color="#ff0033">请求各位帮帮忙解决一下,本人很是感激!<br/></font></p>

coodtec 发表于 2009-2-12 04:11:00

工程中所要链接的库我都做了相应的升级.如<font color="#ff0066">acdb15.lib</font>,都改成了<font color="#ff0066">acdb17</font>.<br/><br/><font color="#ff0000">ObjectArx2007+VS2005  </font>要升级 UNICODE<br/><br/>

大当家 发表于 2010-6-3 14:54:00

<p><font face="Verdana"><a href="http://bbs.mjtd.com/Archive_view.asp?BoardID=14&amp;ID=32075&amp;Master">http://bbs.mjtd.com/Archive_view.asp?BoardID=14&amp;ID=32075&amp;Master</a>=</font></p>
<p>&nbsp;</p>
<p>这里有个例子,可以用</p>

summersky85 发表于 2010-7-9 17:41:00

<p>请问楼主你哪个问题后来怎么解决的。</p>
<p>&nbsp;</p>
<p>谢谢</p>
页: [1]
查看完整版本: 急求帮助!为什么CAdUiDockControlBar::Create()老失败