我想cl.exe在Visual Studio中检索编译器的完整路径以从程序中调用它.我们在注册表中是否有密钥?怎么做?
cl.exe通常位于%VCINSTALLDIR%\bin\.VCINSTALLDIR默认情况下未设置环境变量,但在打开Visual Studio的本机工具命令提示符时正在设置它.
以下是在该批处理脚本中完成的操作:
:GetVCInstallDir
@set VCINSTALLDIR=
@call :GetVCInstallDirHelper32 HKLM > nul 2>&1
@if errorlevel 1 call :GetVCInstallDirHelper32 HKCU > nul 2>&1
@if errorlevel 1 call :GetVCInstallDirHelper64 HKLM > nul 2>&1
@if errorlevel 1 call :GetVCInstallDirHelper64 HKCU > nul 2>&1
@exit /B 0
:GetVCInstallDirHelper32
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VC7" /v "14.0"') DO (
@if "%%i"=="14.0" (
@SET VCINSTALLDIR=%%k
)
)
@if "%VCINSTALLDIR%"=="" exit /B 1
@exit /B 0
:GetVCInstallDirHelper64
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7" /v "14.0"') DO (
@if "%%i"=="14.0" (
@SET VCINSTALLDIR=%%k
)
)
@if "%VCINSTALLDIR%"=="" exit /B 1
@exit /B 0
Run Code Online (Sandbox Code Playgroud)
因此,根据系统的位数,它会查看其中一个注册表项
32位
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VC7 如果VS是在系统范围内安装的HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\SxS\VC7 如果为当前用户安装了VS.64位
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7 如果VS是在系统范围内安装的HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7 如果为当前用户安装了VS.然后,每个已安装的版本都有字符串.这是它在我的机器上的样子:
如果您不知道所需的版本,则需要额外的工作来以编程方式检索正确的值,但这超出了此问题的范围.
| 归档时间: |
|
| 查看次数: |
1159 次 |
| 最近记录: |