⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_22073.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:22073 发表者:youwater 发表日期:2002-11-22 12:08:59
<br>主题:如何从父窗口传递一个参数给mywind.domodal产生的窗口
<br>内容:我有一个Cmywin 窗口类,其派生对象mywind要接收一个从父窗口awin传过来的参数mypara,我是用一个在mywind.h中定义的myvar中间变量来传递的,mywind.h在awin.cpp/mywind.cpp中都有include,方法如下:<BR>// awin.cpp<BR>#include "mywind.h";<BR>...<BR>mypara = "test message";<BR>myvar = mypara;<BR>CmyWin mywind;<BR>mywind.DoModal();<BR>...<BR><BR>//mywind.cpp<BR>#include "mywind.h";<BR>...<BR>MessageBox(myvar);<BR>...<BR>在debug状态第一次编译连接时出现如下错误:<BR>Linking...<BR>awin.obj : error LNK2005: "class CString myvar" (?myvar@@3VCString@@A) already defined in mywin.obj<BR>这时不做任何改动重新编译连接成功,参数也能传递过去。我想这是因为这时*.obj已经生成,编译器就没有再进行判断。<BR>在release状态直接出错,信息如上。<BR>或许我的传递方法本身就不合理,或者根本就是错误的,没办法,我刚学VC++半个月。恳请哪位兄弟帮个忙,解决一下,不胜感激。<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:CDMA2000 回复日期:2002-11-22 12:33:21
<br>内容:这是变量重复定义的缘故!<BR>你在mywind.h加上<BR>#ifndef MY_WIND<BR>#define MY_WIND<BR>//mywind.h的内容<BR><BR><BR>#endif
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:youwater 回复日期:2002-11-22 12:53:10
<br>内容:谢谢CDMA2000<BR><BR>#ifndef MY_WIND<BR>#define MY_WIND<BR><BR>这个MY_WIND是怎么来的?如果我的派生对象名叫abcdefghijk,那么这个MY_WIND应该替换成什么呢?<BR><BR>不好意思,我初学C++,可以帮我解释清楚一些吗?还有,我上面这样的传递方法合理吗?有没有更简单的办法可以解决呢?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:youwater 回复日期:2002-11-22 16:04:07
<br>内容:问题已解决,我在awin.cpp中改了变量传递方法:<BR><BR>Cmywin mywind;<BR>mywind.myver = mypara;<BR>mywind.domodal;<BR><BR>就OK了。<BR><BR>谢谢CDMA2000,不过我还是不懂这个MY_WIND是怎么来的?如果我的派生对象名叫abcdefghijk,那么这个MY_WIND应该替换成什么呢?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:CDMA2000 回复日期:2002-11-22 16:08:47
<br>内容:MY_WIND是你随意定的一个符号而已,但在一个工程中不能有重复的就可以,一般自己定义与文件名相关为好<BR>MFC向导产生的类头文件中也有这个,但它是一个很长的符号,
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:youwater 回复日期:2002-11-22 16:20:46
<br>内容:哦,是这样啊,其实也就是相当于环境变量了,呵呵,C++还有那么聪明啊,谢了,CDMA2000.
<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 + -