VS 6.0 C++ 执行 CL.EXE结果是“驱动器中没有磁盘..<损坏的驱动器名称>”

发布于 2024-11-10 13:10:20 字数 193 浏览 0 评论 0原文

VS 6.0 C++ 执行 CL.EXE 会导致“驱动器中没有磁盘。请将磁盘插入驱动器 xxxx”,其中 XXX 是一系列垃圾字符。这意味着一些损坏的注册表变量或环境变量,但我找不到。我已经尝试完全卸载/重新安装 VS 6.0,但没有成功。

PS 我已经使用 VS 6.0 多年了,没有任何问题。我的 VS 2008 安装没问题,但我还需要 VS 6.0

Execution of CL.EXE by VS 6.0 C++ results in "There is no disk in the drive. Please insert a disk into drive xxxx" where XXX is a series of junk characters. This implies some corrupt registry var or env var, but I cannot find. I have tried a complete de-install / re-install of VS 6.0 to no avail.

P.S. I have been using VS 6.0 for years with no issues. My VS 2008 install is fine but I also need my VS 6.0

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

彩虹直至黑白 2024-11-17 13:10:20

在安装过程中,由于某种原因,这些条目引用的是安装磁盘而不是硬盘驱动器。

工具 - 选项 - 目录 - 在下拉框中选择库文件
删除这两个条目。应该有一个条目 C:\Program Files\DevStudio\VC\LIB 和 \MFC\lib 而不是

D:\DevStudio\VC\LIB
D:\DevStudio\VC\MFC\lib

During install, for some reason these entries reference the install disk instead of your hard drive.

Tools - Options - Directories - in the Drop Down box select Library Files
remove these two entries. There should be an entry to C:\Program Files\DevStudio\VC\LIB and \MFC\lib instead

D:\DevStudio\VC\LIB
D:\DevStudio\VC\MFC\lib

很酷又爱笑 2024-11-17 13:10:20

如果您在 C++ 6.0 中创建一个新的 Win32 控制台应用程序,是否会发生同样的问题?如果不是,则表明您的问题可能特定于您的项目,而不是整体适用于 C++ 6.0。在这种情况下,您可能只需使用记事本打开 dsw 或 dsp 文件并查找奇怪的驱动器名称。

如果您转到“工具”|选项| “生成”选项卡并确保选中“写入生成日志 (.plg)”框,然后 Visual Studio 会将其执行的所有操作记录到名为 .plg 的文件中。该文件可以用记事本(或您最喜欢的文本编辑器)打开。您应该能够看到传递给 CL.EXE 的命令行 - 像这样......

创建命令行“cl.exe
@C:\DOCUME~1\XPMUser\LOCALS~1\Temp\RSP2EF.tmp"

在此之前您应该看到响应文件的内容...

创建临时文件
“C:\DOCUME~1\XPMUser\LOCALS~1\Temp\RSP2EF.tmp”
内容为 [ /nologo /MLd /W3 /Gm
/GX /ZI /Od /D “WIN32” /D “_DEBUG” /D
“_CONSOLE”/D“_MBCS”
/Fp"调试/STOFLO1.pch" /Yu"stdafx.h"
/Fo"调试/" /Fd"调试/" /FD /GZ /c
“C:\TestPrograms\VC++\STOFLO1\STOFLO1.cpp”
]

这可能会帮助您找出奇怪的驱动器名称正在使用的位置,这反过来又可能会告诉您它来自哪里。

如果这没有帮助,您可能需要使用 SysInternals 中的 Process Monitor 等工具。在启动 VC++ 6.0 并构建项目时运行 Process Monitor,然后使用 Find 在监视器输出中搜索奇数驱动器名称。 PM 很可能会捕获检索该名称的任何访问(从注册表或其他地方)。如果确实如此,这可能会再次为您提供需要更改哪些内容的线索。

If you create a fresh Win32 Console Application in C++ 6.0 does the same problem happen? If not that would suggest your problem might be specific to your project rather than applying to C++ 6.0 overall. In which case you might just open your dsw or dsp file with notepad and look for the odd drive name.

If you go to Tools | Options | Build tab and make sure the "Write Build Log (.plg)" box is checked then Visual Studio will log everything it does to a file named .plg. That file can be opened with notepad (or your favourite text editor). You should be able to see the command line passed to CL.EXE - something like this...

Creating command line "cl.exe
@C:\DOCUME~1\XPMUser\LOCALS~1\Temp\RSP2EF.tmp"

Just before that you should see the contents of the response file...

Creating temporary file
"C:\DOCUME~1\XPMUser\LOCALS~1\Temp\RSP2EF.tmp"
with contents [ /nologo /MLd /W3 /Gm
/GX /ZI /Od /D "WIN32" /D "_DEBUG" /D
"_CONSOLE" /D "_MBCS"
/Fp"Debug/STOFLO1.pch" /Yu"stdafx.h"
/Fo"Debug/" /Fd"Debug/" /FD /GZ /c
"C:\TestPrograms\VC++\STOFLO1\STOFLO1.cpp"
]

That might help you figure out where your odd drive name is being used which in turn might tell you where it is coming from.

If that doesn't help, you might want to use a tool like Process Monitor from SysInternals. Run Process Monitor while you bring up VC++ 6.0 and build your project then use Find to search the monitor output for the odd drive name. There's a good chance that PM will capture whatever access retrived that name (from the registry or wherever). If it does, that again may give you a clue as to what needs to be changed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文