[Visual C++] Visual Studio 설치 위치 가져오기

spring·2020년 11월 9일
0

vswhere을 이용하는 것이 가장 편하다. 아래는 vswhere을 다운받아 실행하고 설치 경로를 가져오는 함수이다.

#include <iostream>
#include<string>
#include<cstdio>   //_popen
#include<Windows.h>
#include<urlmon.h> //URLDownloadToFileA
#pragma comment(lib,"urlmon.lib")
/**
*	@param 1: 16(2019), 15(2017), 14(2015), 
*/
std::string vswhere(int version) {
	std::string path;
	if (URLDownloadToFileA(nullptr, "https://github.com/microsoft/vswhere/releases/download/2.8.4/vswhere.exe", "vswhere.exe", 0, 0) == S_OK) {
		char buf[256] = { 0 };
		sprintf(buf, "vswhere -legacy -version [%d.0,%d.0) -property installationPath", version, version + 1);
		FILE* fp = _popen(buf, "r");
		if (fp != NULL) {
			char c;
			while (fread(&c, 1, 1, fp) == 1 && c != EOF) {
				path.push_back(c);
			}
			_pclose(fp);
		}
	}
	path = path.substr(0, path.find_last_not_of("\\\n\t ") + 1);
	return path;
}
profile
Researcher & Developer @ NAVER Corp | Designer @ HONGIK Univ.

0개의 댓글