📄 subject_53533.htm
字号:
<p>
序号:53533 发表者:最后一根稻草 发表日期:2003-09-20 14:59:00
<br>主题:一个C与VC混编的链接错误
<br>内容:我手头有个程序,是在VC中调用一个C库,首先我将C库调了进来,用了这样的方法:在菜单"Project"-Setting,左边工程展开,选中Source Files-dllentry.c,<BR>右边选项中选择C/C++,"Category"中选择Precompiled Headers,下面选中"Not using precompiled headers",一开始能够编绎成功,但我接着又加入了若干代码,就出现了这样的错误<BR>ompiling...<BR>OkMfcView.cpp<BR>F:\Documents and Settings\luhouxiang\桌面\OkMfc\OkMfcView.cpp(427) : error C2065: 'HDRAWDIB' : undeclared identifier<BR>F:\Documents and Settings\luhouxiang\桌面\OkMfc\OkMfcView.cpp(427) : error C2146: syntax error : missing ';' before identifier 'hdd'<BR>F:\Documents and Settings\luhouxiang\桌面\OkMfc\OkMfcView.cpp(427) : error C2065: 'hdd' : undeclared identifier<BR>F:\Documents and Settings\luhouxiang\桌面\OkMfc\OkMfcView.cpp(478) : error C2065: 'DrawDibOpen' : undeclared identifier<BR>F:\Documents and Settings\luhouxiang\桌面\OkMfc\OkMfcView.cpp(489) : error C2065: 'DrawDibDraw' : undeclared identifier<BR>F:\Documents and Settings\luhouxiang\桌面\OkMfc\OkMfcView.cpp(496) : error C2065: 'DDF_BACKGROUNDPAL' : undeclared identifier<BR>F:\Documents and Settings\luhouxiang\桌面\OkMfc\OkMfcView.cpp(542) : error C2065: 'DrawDibClose' : undeclared identifier<BR>Error executing cl.exe.<BR><BR>OkMfc.exe - 7 error(s), 0 warning(s)<BR><BR>然后我在OkMfcView.cpp加入<BR>#include "vfw.h"<BR>结果出现了这样的错误:<BR>OkMfcView.obj : error LNK2001: unresolved external symbol _DrawDibClose@4<BR>OkMfcView.obj : error LNK2001: unresolved external symbol _DrawDibDraw@52<BR>OkMfcView.obj : error LNK2001: unresolved external symbol _DrawDibOpen@0<BR>Debug/OkMfc.exe : fatal error LNK1120: 3 unresolved externals<BR>Error executing link.exe.<BR>Creating browse info file...<BR><BR>OkMfc.exe - 4 error(s), 0 warning(s),<BR>查了MSDN,说是不同语言混编的结果,我没办法了,高手指点。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:最后一根稻草 回复日期:2003-09-20 15:02:37
<br>内容:以下是相关程序,分两次发来
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:最后一根稻草 回复日期:2003-09-20 15:03:27
<br>内容:第二部分
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Bardo 回复日期:2003-09-20 15:25:21
<br>内容:删除PCH后再重编译看看。有预编译文件有时反而不能正确通过。<BR><BR>还有一种方法,那就是倒回去,倒到何处不错为止,那时可以找到错误所在。<BR><BR>注意:如果是C,留心你程序是用VC向导生成的。那前后有C++的预处理与C++系统标志注解。尽管是注解,也会导致错误!<BR><BR>供参考!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:a dog 回复日期:2003-09-20 15:38:15
<br>内容:Vfw32.lib没加呀。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:最后一根稻草 回复日期:2003-09-20 16:54:49
<br>内容:我倒回去了,是OnPaint()函数中的<BR> HDRAWDIB hdd;<BR> hdd = DrawDibOpen();<BR>DrawDibClose(hdd);<BR>这样几个函数引起的,该怎样修改?<BR>四楼的朋友,那Vfw32.lib该怎样加啊?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:a dog 回复日期:2003-09-20 17:02:27
<br>内容:工程设置的LINK选项中的“对象/库模块”中加入
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -