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

📄 subject_37787.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:37787 发表者:阿蝌 发表日期:2003-04-28 10:44:09
<br>主题:再问一个和mfc42d.dll有关的问题
<br>内容:我编译成功的程序在别人的机器上使用会报找不到mfc42d.dll等动态库,记得原来有高人说过,在工程中使用静态连接,就可以不用把这几个动态库考过去,于是我在工程中使用了release版并将其设为Use MFC in a static lib,可还是报缺少那几个动态库,谁能告诉我怎么才能不要把mfc42d.dll等动态库考过去???
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:neilgan 回复日期:2003-04-28 10:55:06
<br>内容:你设错了吧?release版是不需要mfc42d.dll的,即使是动态连接的版本。release版的.exe在release目录下。<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>
回复者:阿蝌 回复日期:2003-04-28 11:09:10
<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-04-28 11:12:12
<br>内容:release版只是没有调试信息而已,除此之外和debug没区别
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-04-28 11:20:30
<br>内容:楼上的说错了<BR>调试信息是包含在.dbg/.pdb文件里面的<BR>你仔细看一下release下面的exe文件<BR>拷贝过去看能不能用<BR>或者在c++-&gt;code generation里面选择静态的crt<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>
回复者:neilgan 回复日期:2003-04-28 11:29:46
<br>内容:还是xiongli说得清楚。
<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-04-28 11:50:12
<br>内容:release下的的确报找不到mfc42d.dll,<BR>c++-&gt;code generation里面怎么选择静态的crt,我怎么没找到,<BR>而且Use MFC in a static lib又有什么用呢?<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>
回复者:阿蝌 回复日期:2003-04-28 11:54:37
<br>内容:还有如果debug版中没有断点等调试信息,那它为什么要比release大出几倍,<BR>如果release是不需要mfc42d.dll,debug需要,那应该release版比debug版大才对
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-04-28 12:02:33
<br>内容:所谓静态crt,就是除了后面有dll的crt<BR>crt分为两种,debug/release<BR>分成两类,dll/nodll<BR>分成两个版本,多线程和单线程<BR>你要选择正确的版本。<BR><BR>关于release/debug的区别,下面是我的理解,不一定正确,还请neil讲解:<BR>debug/release的区别在于是不是对代码作了优化。<BR>优化后的代码很难跟.dbg/.pdb文件对应起来,所以也就不利于源代码级别的调试
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-04-28 12:05:24
<br>内容:从上到下,依次是三个debug版本和三个release版本的crt<BR>分别是,单线程静态,多线程静态,多线程动态<BR>支持多线程的crt当然同时支持单线程的crt,所以动态连接的crt不区分单线程和多线程.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-04-28 12:07:28
<br>内容:我搞不懂的是就算你release版本需要dll,那也不应该是mfc42D.dll阿<BR>这个D代表debug版本阿!<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-04-28 13:11:24
<br>内容:先谢谢两位<BR>to xiongli:<BR>我用的肯定是release版,而且按照你说的用了<BR>多线程静态crt,编译出的程序还是报mfc42d.dll找不到,而且在我包含了mfc42d.dll后程序却无法执行了,真搞不懂。<BR>另外我发现用了Use MFC in a static lib才能使用静态crt,用动态的mfc类库报错。<BR>Use MFC in a static lib是不是也和这方面有关<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-04-28 13:23:23
<br>内容:http://www.china-askpro.com/msg10/qa87.shtml<BR>http://www.china-askpro.com/msg32/qa21.shtml<BR>这上面说只要设Use MFC in a static lib,而不用设置静态crt<BR><BR>我想是不是我的vc有问题?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-04-28 15:32:26
<br>内容:我设定了Use MFC in a static lib<BR>然后也就全部ok<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>回复者:xiongli 回复日期:2003-04-28 15:32:50
<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-04-28 16:29:42
<br>内容:我试了一下Use MFC in a static lib和你说的静态crt<BR>是一样的,设置了第一个也自动设了第二个。<BR>另外我也观察了一下\\winnt\system32,其目录中会自动生成mfc42.dll(而不会自动生成mfc42d.dll),所以用release版无所谓用不用静态mfc类库。<BR><BR>我建了一个新的工程,用release没问题(不论是动态mfc库还是静态mfc库),现在我想可能是我程序中调过几个dll造成的,不知道xiongli兄有什么高见。<BR><BR>程序我不方便公开源代码。<BR><BR>谢谢xiongli兄的帮助,以后有什么问题还多多请教<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-04-28 17:14:18
<br>内容:我找到问题了<BR>程序中用了钩子,好像就是钩子造成的,也就是说mfc42d.dll才有对钩子的支持
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-04-28 21:02:11
<br>内容://也就是说mfc42d.dll才有对钩子的支持<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-04-28 22:57:55
<br>内容:是我说错了,调的dll我用了debug版本<BR>2003-4-29 15:14:31

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -