subject_19203.htm

来自「一些关于vc的问答」· HTM 代码 · 共 72 行

HTM
72
字号
<p>
序号:19203 发表者:海风 发表日期:2002-10-26 14:45:26
<br>主题:求救error LNK2005: already defined
<br>内容:error LNK2005: "struct LOGININFO&nbsp;&nbsp;Loginfo" (?Loginfo@@3ULOGININFO@@A) already defined in ContrlDB.ob<BR>如何定义全局变量?<BR>这样子不行么?<BR>typedef struct <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;&nbsp;&nbsp;&nbsp;m_DBName;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;&nbsp;&nbsp;&nbsp;m_PassWord;<BR>&nbsp;&nbsp;&nbsp;&nbsp;UINT&nbsp;&nbsp;&nbsp;&nbsp;m_Port;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;&nbsp;&nbsp;&nbsp;m_SrvAd;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;&nbsp;&nbsp;&nbsp;m_UsrName;<BR>}LOGININFO;<BR><BR> LOGININFO&nbsp;&nbsp;&nbsp;&nbsp; Loginfo;<BR><BR>把LOGININFO&nbsp;&nbsp;&nbsp;&nbsp; Loginfo; 放在.h或.cpp里面都出错&nbsp;&nbsp;<BR>为什么?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-10-26 15:10:49
<br>内容:没错啊,我放到哪里也没错!<BR><BR>clean<BR><BR>rebuild all<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>
回复者:^_^ 回复日期:2002-10-26 16:12:34
<br>内容:是不是你include头文件多次了?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-10-26 16:25:31
<br>内容:如果多次包含也不是link error啊!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:海风 回复日期:2002-10-26 17:16:03
<br>内容:already defined in ContrlDB.ob<BR><BR>他说我的目标文件已经定义了<BR>可是 ContrlDB.ob 是编译后才生成的<BR>我把 LOGININFO&nbsp;&nbsp;&nbsp;&nbsp; Loginfo;删除后 ,又说我没定义 <BR>人家的全局变量&nbsp;&nbsp;theApp也是这样定义的,不见错<BR>头痛<BR><BR>include头文件多次&nbsp;&nbsp;因该不关事吧&nbsp;&nbsp;?<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>
回复者:凯凯 回复日期:2002-10-26 17:51:26
<br>内容:把整个.h文件贴上来看看。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:海风 回复日期:2002-10-26 20:57:22
<br>内容:"MyAsyncSocket.h"文件 <BR># define MAXREPG&nbsp;&nbsp;&nbsp;&nbsp; 1024*1024*100<BR># define&nbsp;&nbsp;MAXSENDPG&nbsp;&nbsp;1024*1024*50<BR><BR>/////////////////////////////////////////////////////////////////////////////<BR>// CMyAsyncSocket command target<BR>typedef struct <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;&nbsp;&nbsp;&nbsp;m_DBName;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;&nbsp;&nbsp;&nbsp;m_PassWord;<BR>&nbsp;&nbsp;&nbsp;&nbsp;UINT&nbsp;&nbsp;&nbsp;&nbsp;m_Port;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;&nbsp;&nbsp;&nbsp;m_SrvAd;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString&nbsp;&nbsp;&nbsp;&nbsp;m_UsrName;<BR>}LOGININFO;<BR> LOGINIFOF&nbsp;&nbsp;Logininfo;<BR><BR>class CMyAsyncSocket : public CAsyncSocket<BR>{<BR>以上都没有再定义LOGINIFOF&nbsp;&nbsp;成员<BR>}<BR>另一文件 <BR><BR>#include "MyAsyncSocket.h"<BR>#include "ContrlDB.h"<BR>#include "LoginDlg.h"<BR>class CContrlDBDlg : public CDialog<BR>{<BR>// Construction<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CContrlDBDlg(CWnd* pParent = NULL);&nbsp;&nbsp;&nbsp;&nbsp;// standard constructor<BR><BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CLoginDlg&nbsp;&nbsp; CLoginDlg;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMyAsyncSocket&nbsp;&nbsp;&nbsp;&nbsp;m_clientSocket;<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>
回复者:凯凯 回复日期:2002-10-26 21:15:37
<br>内容:LOGINIFOF&nbsp;&nbsp;Logininfo;<BR><BR>把这一行从.h文件中移走。当你在其他的CPP文件中包含这个.h文件时,这个变量就重复定义了。在需要这个变量的CPP文件中定义它。<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>
回复者:海风 回复日期:2002-10-26 22:29:17
<br>内容:我想定义成全局变量<BR>我想在多个类中都能使用字<BR>如果我只在一个类CPP 中定义 那么就只有这个文件中的类可用<BR>在其它类中&nbsp;&nbsp;说没定义<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>
回复者:Norton AntivVirus 回复日期:2002-10-26 22:58:55
<br>内容:在最上面加上这两句话:<BR>#if !defined(__MYASYNCSOCKET_H__)<BR>#define __MYASYNCSOCKET_H__<BR><BR><BR><BR>最后加上:<BR><BR>#endif<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>
回复者:海风 回复日期:2002-10-26 23:25:59
<br>内容:if !defined(__MYASYNCSOCKET_H__)<BR>#define __MYASYNCSOCKET_H__<BR>最后加上:<BR>#endif<BR><BR>不明 __MYASYNCSOCKET_H__ 是自定义的宏么?<BR>#define  __MYASYNCSOCKET_H__ &nbsp;&nbsp;MyAsyncSocket.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;??<BR>在用到 MyAsyncSocket的地方 都是要加入MyAsyncSocket.h <BR>如果我把 LOGINIFOF&nbsp;&nbsp;Logininfo  移到其它CPP文件中 那么就可能在那个文件中有效<BR>其它CPP文件不能识别 为什么? 这不是全局量么?<BR>我把他移到  theApp全局变量的下面也不行  为什么? 为什么theApp就能在其文件中有效?我的不行 <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>
<font color=red>答案被接受</font><br>回复者:凯凯 回复日期:2002-10-27 17:02:28
<br>内容:在你的另一贴中已经回复了,用extern关键字。
<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 + =
减小字号Ctrl + -
显示快捷键?