提交 b8fec1ce 编写于 作者: A AlekseyTs

Create a project for a vbcsc2ui.dll to hold resource used by vbc2.exe and...

Create a project for a vbcsc2ui.dll to hold resource used by vbc2.exe and csc2.exe. (changeset 1346108)
上级 a1fc0351
......@@ -5,5 +5,5 @@
int _tmain(int argc, _TCHAR* argv[])
{
return Run(RequestLanguage::CSHARPCOMPILE, L"csc2.resources.dll");
return Run(RequestLanguage::CSHARPCOMPILE);
}
......@@ -36,7 +36,7 @@ HINSTANCE g_hinstMessages;
wstring GetCurrentDirectory()
{
int sizeNeeded = GetCurrentDirectory(0, nullptr);
if (0 == sizeNeeded)
if (0 == sizeNeeded)
{
FailWithGetLastError(IDS_GetCurrentDirectoryFailed);
}
......@@ -50,7 +50,7 @@ wstring GetCurrentDirectory()
FailWithGetLastError(IDS_GetCurrentDirectoryFailed);
}
result.resize(written);
result.resize(written);
return result;
}
......@@ -59,7 +59,7 @@ wstring GetCurrentDirectory()
std::unique_ptr<LPCWSTR, decltype(&::LocalFree)> GetCommandLineArgs(_Out_ int& argsCount)
{
auto args = const_cast<LPCWSTR*>(CommandLineToArgvW(GetCommandLine(), &argsCount));
if (args == nullptr)
if (args == nullptr)
{
FailWithGetLastError(IDS_CommandLineToArgvWFailed);
}
......@@ -101,7 +101,7 @@ void OutputWideString(_In_ FILE * outputFile, _In_ const wstring str, bool utf8O
{
cp = CP_UTF8;
}
else
else
{
cp = GetConsoleOutputCP();
}
......@@ -117,7 +117,7 @@ void OutputWideString(_In_ FILE * outputFile, _In_ const wstring str, bool utf8O
// Output the response we got back from the server onto our stdout and stderr.
void OutputResponse(_In_ const CompletedResponse& response)
{
auto utf8output = response.Utf8Output;
auto utf8output = response.Utf8Output;
OutputWideString(stdout, response.Output, utf8output);
OutputWideString(stderr, response.ErrorOutput, utf8output);
}
......@@ -131,7 +131,7 @@ bool GetExpectedProcessPath(_Out_writes_z_(cch) LPWSTR szProcessName, int cch)
if (GetModuleFileNameW(NULL, szProcessName, cch) != 0)
{
LPWSTR lastBackslash = wcsrchr(szProcessName, '\\');
if (lastBackslash != NULL)
if (lastBackslash != NULL)
{
*(lastBackslash + 1) = '\0';
return SUCCEEDED(StringCchCatW(szProcessName, cch, SERVERNAME));
......@@ -171,24 +171,24 @@ HANDLE ConnectToProcess(DWORD processID, int timeoutMs)
/// </param>
_Success_(return != false)
bool TryCompile(HANDLE pipeHandle,
RequestLanguage language,
_In_z_ LPCWSTR currentDirectory,
_In_ const list<wstring>& commandLineArgs,
_In_opt_z_ LPCWSTR libEnvVariable,
_In_ const wstring& keepAlive,
_Out_ CompletedResponse& response)
RequestLanguage language,
_In_z_ LPCWSTR currentDirectory,
_In_ const list<wstring>& commandLineArgs,
_In_opt_z_ LPCWSTR libEnvVariable,
_In_ const wstring& keepAlive,
_Out_ CompletedResponse& response)
{
auto request = Request(language, currentDirectory);
request.AddCommandLineArguments(commandLineArgs);
if (libEnvVariable != nullptr) {
request.AddLibEnvVariable(wstring(libEnvVariable));
}
if (!keepAlive.empty()) {
request.AddKeepAlive(wstring(keepAlive));
}
auto request = Request(language, currentDirectory);
request.AddCommandLineArguments(commandLineArgs);
if (libEnvVariable != nullptr) {
request.AddLibEnvVariable(wstring(libEnvVariable));
}
if (!keepAlive.empty()) {
request.AddKeepAlive(wstring(keepAlive));
}
RealPipe wrapper(pipeHandle);
if (!request.WriteToPipe(wrapper))
if (!request.WriteToPipe(wrapper))
{
Log(IDS_FailedToWriteRequest);
return false;
......@@ -211,15 +211,15 @@ bool GetAllProcessIds(_Out_ vector<DWORD>& processes)
{
Log(IDS_EnumeratingProcessIDs);
processes.clear();
processes.clear();
processes.resize(64);
DWORD bytesWritten;
for (;;)
{
if (EnumProcesses(processes.data(),
static_cast<int>(processes.size()) * sizeof(DWORD),
&bytesWritten))
static_cast<int>(processes.size()) * sizeof(DWORD),
&bytesWritten))
{
int writtenDwords = bytesWritten / sizeof(DWORD);
if (writtenDwords != processes.size())
......@@ -262,7 +262,7 @@ void SetupDevDivEnvironment()
if (!SetEnvironmentVariable(installRoot, buffer.c_str()))
FailWithGetLastError(L"SetEnvironmentVariable install root");
if (!SetEnvironmentVariable(L"COMPLUS_Version", L"v4.5"))
if (!SetEnvironmentVariable(L"COMPLUS_Version", L"v4.5"))
FailWithGetLastError(L"SetEnvironmentVariable version");
}
......@@ -295,26 +295,26 @@ DWORD CreateNewServerProcess(_In_z_ LPCWSTR executablePath)
errno_t err;
if ((err = _wsplitpath_s(executablePath,
driveLetter.get(), _MAX_DRIVE,
dirWithoutDrive.get(), _MAX_DIR,
nullptr, 0,
nullptr, 0)))
driveLetter.get(), _MAX_DRIVE,
dirWithoutDrive.get(), _MAX_DIR,
nullptr, 0,
nullptr, 0)))
{
FailFormatted(IDS_SplitProcessPathError, err);
}
auto createPath = make_unique<wchar_t[]>(MAX_PATH);
if ((err = _wmakepath_s(createPath.get(),
MAX_PATH,
driveLetter.get(),
dirWithoutDrive.get(),
nullptr,
nullptr)))
MAX_PATH,
driveLetter.get(),
dirWithoutDrive.get(),
nullptr,
nullptr)))
{
FailFormatted(IDS_MakeNewProcessPathError, err);
}
success = CreateProcess(executablePath,
success = CreateProcess(executablePath,
NULL, // command line,
NULL, // process attributes
NULL, // thread attributes
......@@ -325,7 +325,7 @@ DWORD CreateNewServerProcess(_In_z_ LPCWSTR executablePath)
&startupInfo,
&processInfo);
if (success)
if (success)
{
// We don't need the process and thread handles.
LogFormatted(IDS_CreatedProcess, processInfo.dwProcessId);
......@@ -333,7 +333,7 @@ DWORD CreateNewServerProcess(_In_z_ LPCWSTR executablePath)
CloseHandle(processInfo.hThread);
return processInfo.dwProcessId;
}
else
else
{
LogWin32Error(IDS_CreatingProcess);
return 0;
......@@ -344,19 +344,19 @@ DWORD CreateNewServerProcess(_In_z_ LPCWSTR executablePath)
bool ProcessHasSameName(HANDLE processHandle, _In_z_ LPCWSTR expectedName)
{
// Get the process name.
WCHAR buffer[MAX_PATH] = {};
WCHAR buffer[MAX_PATH] = {};
DWORD length = _countof(buffer);
#pragma warning(suppress: 6386)
return QueryFullProcessImageNameW(processHandle,
0, /*dwFlags: 0 = Win32 format */
buffer,
&length)
return QueryFullProcessImageNameW(processHandle,
0, /*dwFlags: 0 = Win32 format */
buffer,
&length)
&& lstrcmpiW(buffer, expectedName) == 0;
}
BOOL GetTokenUserAndElevation(HANDLE tokenHandle,
_Out_ unique_ptr<TOKEN_USER>& userInfo,
_Out_ unique_ptr<TOKEN_ELEVATION>& userElevation)
_Out_ unique_ptr<TOKEN_USER>& userInfo,
_Out_ unique_ptr<TOKEN_ELEVATION>& userElevation)
{
DWORD requiredLength;
GetTokenInformation(tokenHandle, TokenUser, NULL, 0, &requiredLength);
......@@ -372,8 +372,8 @@ BOOL GetTokenUserAndElevation(HANDLE tokenHandle,
}
bool ProcessHasSameUserAndElevation(HANDLE processHandle,
_In_ TOKEN_USER const * firstInfo,
_In_ TOKEN_ELEVATION const * firstElevation)
_In_ TOKEN_USER const * firstInfo,
_In_ TOKEN_ELEVATION const * firstElevation)
{
HANDLE tokenHandle;
if (OpenProcessToken(processHandle, TOKEN_QUERY, &tokenHandle))
......@@ -454,61 +454,61 @@ HANDLE TryExistingProcesses(_In_z_ LPCWSTR expectedProcessName)
// arguments in the response file, we would have to edit the response file to
// remove the argument or mangle the command line given to the server.
void ParseAndValidateClientArguments(
_Inout_ list<wstring>& arguments,
_Out_ wstring& keepAliveValue)
_Inout_ list<wstring>& arguments,
_Out_ wstring& keepAliveValue)
{
keepAliveValue.clear();
auto iter = arguments.cbegin();
while (iter != arguments.cend())
{
auto arg = *iter;
if (arg.find(L"/keepalive") == 0)
{
auto prefixLen = wcslen(L"/keepalive");
if (arg.length() < prefixLen + 2 ||
(arg.at(prefixLen) != L':' && arg.at(prefixLen) != L'='))
{
throw FatalError(GetResourceString(IDS_MissingKeepAlive));
}
auto value = arg.substr(prefixLen + 1);
try {
auto intValue = stoi(value);
if (intValue < -1) {
throw FatalError(GetResourceString(IDS_KeepAliveIsTooSmall));
}
keepAliveValue = value;
iter = arguments.erase(iter);
continue;
}
catch (invalid_argument) {
throw FatalError(GetResourceString(IDS_KeepAliveIsNotAnInteger));
}
catch (out_of_range) {
throw FatalError(GetResourceString(IDS_KeepAliveIsOutOfRange));
}
}
++iter;
}
keepAliveValue.clear();
auto iter = arguments.cbegin();
while (iter != arguments.cend())
{
auto arg = *iter;
if (arg.find(L"/keepalive") == 0)
{
auto prefixLen = wcslen(L"/keepalive");
if (arg.length() < prefixLen + 2 ||
(arg.at(prefixLen) != L':' && arg.at(prefixLen) != L'='))
{
throw FatalError(GetResourceString(IDS_MissingKeepAlive));
}
auto value = arg.substr(prefixLen + 1);
try {
auto intValue = stoi(value);
if (intValue < -1) {
throw FatalError(GetResourceString(IDS_KeepAliveIsTooSmall));
}
keepAliveValue = value;
iter = arguments.erase(iter);
continue;
}
catch (invalid_argument) {
throw FatalError(GetResourceString(IDS_KeepAliveIsNotAnInteger));
}
catch (out_of_range) {
throw FatalError(GetResourceString(IDS_KeepAliveIsOutOfRange));
}
}
++iter;
}
}
CompletedResponse Run(
RequestLanguage language,
_In_z_ LPCWSTR currentDirectory,
_In_reads_(argsCount) LPCWSTR rawCommandLineArgs[],
int argsCount,
_In_reads_(argsCount) LPCWSTR rawCommandLineArgs[],
int argsCount,
_In_opt_z_ LPCWSTR libEnvVar)
{
list<wstring> commandLineArgs(rawCommandLineArgs,
rawCommandLineArgs + argsCount);
// Throws FatalError if there was a problem parsing a command line argument
wstring keepAlive;
ParseAndValidateClientArguments(commandLineArgs, keepAlive);
list<wstring> commandLineArgs(rawCommandLineArgs,
rawCommandLineArgs + argsCount);
// Throws FatalError if there was a problem parsing a command line argument
wstring keepAlive;
ParseAndValidateClientArguments(commandLineArgs, keepAlive);
wchar_t expectedProcessPath[MAX_PATH];
......@@ -523,7 +523,7 @@ CompletedResponse Run(
// First attempt to grab the mutex
wstring mutexName(expectedProcessPath);
replace(mutexName.begin(), mutexName.end(), L'\\', L'/');
replace(mutexName.begin(), mutexName.end(), L'\\', L'/');
Log(IDS_CreatingMutex);
......@@ -552,12 +552,12 @@ CompletedResponse Run(
CompletedResponse response;
if (TryCompile(pipeHandle.get(),
language,
currentDirectory,
commandLineArgs,
libEnvVar,
keepAlive,
response))
language,
currentDirectory,
commandLineArgs,
libEnvVar,
keepAlive,
response))
{
return response;
}
......@@ -580,12 +580,12 @@ CompletedResponse Run(
Log(IDS_Compiling);
CompletedResponse response;
if (TryCompile(pipeHandle.get(),
language,
currentDirectory,
commandLineArgs,
libEnvVar,
keepAlive,
response))
language,
currentDirectory,
commandLineArgs,
libEnvVar,
keepAlive,
response))
{
return response;
}
......@@ -615,12 +615,12 @@ CompletedResponse Run(
Log(IDS_ConnectedNewProcess);
CompletedResponse response;
if (TryCompile(pipeHandle.get(),
language,
currentDirectory,
commandLineArgs,
libEnvVar,
keepAlive,
response))
language,
currentDirectory,
commandLineArgs,
libEnvVar,
keepAlive,
response))
{
return response;
}
......@@ -659,7 +659,7 @@ CompletedResponse Run(
}
// Unreachable
return CompletedResponse();
return CompletedResponse();
}
bool ProcessSlashes(_Inout_ WCHAR * & outBuffer, _Inout_ LPCWSTR * pszCur)
......@@ -806,10 +806,11 @@ void SetPreferredUILangForMessages(LPCWSTR rawCommandLineArgs[], int argsCount,
}
}
int Run(RequestLanguage language, _In_z_ LPCWSTR uiDllname)
int Run(RequestLanguage language)
{
try
{
LPCWSTR uiDllname = L"vbcsc2ui.dll";
g_hinstMessages = GetMessageDll(uiDllname);
if (!g_hinstMessages)
......@@ -843,7 +844,7 @@ int Run(RequestLanguage language, _In_z_ LPCWSTR uiDllname)
argsCount - 1,
GetEnvVar(L"LIB", libEnvVariable) ? libEnvVariable.c_str() : nullptr);
OutputResponse(response);
OutputResponse(response);
return response.ExitCode;
}
catch (FatalError &e)
......
......@@ -12,7 +12,7 @@ CompletedResponse Run(
int argsCount,
_In_opt_z_ LPCWSTR libEnvVar);
int Run(RequestLanguage language, _In_z_ LPCWSTR uiDllname);
int Run(RequestLanguage language);
void ParseAndValidateClientArguments(
_Inout_ list<wstring>& arguments,
......
......@@ -11,36 +11,36 @@
// These are just a bunch of common languages -- not necessarily all languages we localize to.
// This list should never be used in usual course of things -- it's just an "emergency" fallback.
const LANGID g_fallbackLangs[] =
{
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_UK),
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_AUS),
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_CAN),
// MAKELANGID(LANG_CHINESE, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL),
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED),
MAKELANGID(LANG_FRENCH, SUBLANG_DEFAULT),
MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH),
MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH_CANADIAN),
// MAKELANGID(LANG_GERMAN, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN),
MAKELANGID(LANG_GREEK, SUBLANG_DEFAULT),
MAKELANGID(LANG_HEBREW, SUBLANG_DEFAULT),
// MAKELANGID(LANG_ITALIAN, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_ITALIAN, SUBLANG_ITALIAN),
MAKELANGID(LANG_JAPANESE, SUBLANG_DEFAULT),
// MAKELANGID(LANG_KOREAN, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_KOREAN, SUBLANG_KOREAN),
// MAKELANGID(LANG_PORTUGUESE, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_PORTUGUESE, SUBLANG_PORTUGUESE),
MAKELANGID(LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN),
MAKELANGID(LANG_RUSSIAN, SUBLANG_DEFAULT),
// MAKELANGID(LANG_SPANISH, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH),
MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MEXICAN),
MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN),
};
{
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_UK),
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_AUS),
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_CAN),
// MAKELANGID(LANG_CHINESE, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL),
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED),
MAKELANGID(LANG_FRENCH, SUBLANG_DEFAULT),
MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH),
MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH_CANADIAN),
// MAKELANGID(LANG_GERMAN, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN),
MAKELANGID(LANG_GREEK, SUBLANG_DEFAULT),
MAKELANGID(LANG_HEBREW, SUBLANG_DEFAULT),
// MAKELANGID(LANG_ITALIAN, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_ITALIAN, SUBLANG_ITALIAN),
MAKELANGID(LANG_JAPANESE, SUBLANG_DEFAULT),
// MAKELANGID(LANG_KOREAN, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_KOREAN, SUBLANG_KOREAN),
// MAKELANGID(LANG_PORTUGUESE, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_PORTUGUESE, SUBLANG_PORTUGUESE),
MAKELANGID(LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN),
MAKELANGID(LANG_RUSSIAN, SUBLANG_DEFAULT),
// MAKELANGID(LANG_SPANISH, SUBLANG_DEFAULT), // Same as below
MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH),
MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MEXICAN),
MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN),
};
// Returns true iff the language specificed by langid is displayable in the current console code-page.
......@@ -78,13 +78,13 @@ static HINSTANCE FindMessageDll(LANGID langid, bool fCheckLangID, LPCWSTR messag
{
// The specified language ID is not valid for the current console code page,
// so don't search for the resource dll
if (langid != (LANGID) - 1 && fCheckLangID && !LanguageMatchesCP(langid))
if (langid != (LANGID)-1 && fCheckLangID && !LanguageMatchesCP(langid))
return 0;
WCHAR path[MAX_PATH];
WCHAR *pEnd;
if (GetModuleFileName(GetModuleHandle(NULL), path, lengthof(path)))
if (!GetModuleFileName(GetModuleHandle(NULL), path, lengthof(path)))
return 0;
// Force null termination
......@@ -92,24 +92,24 @@ static HINSTANCE FindMessageDll(LANGID langid, bool fCheckLangID, LPCWSTR messag
pEnd = wcsrchr(path, L'\\');
if (!pEnd)
if (!pEnd)
return 0;
++pEnd;
*pEnd = L'\0'; // nul terminate and point to the nul
// Append language ID
if (langid != (LANGID) - 1)
if (langid != (LANGID)-1)
{
if (FAILED(StringCchPrintfW(pEnd, lengthof(path) - (pEnd - path), L"%d\\", langid)))
return 0;
}
// Append message DLL name.
if (FAILED(StringCchCatW(path, lengthof(path), messageDllName)))
if (FAILED(StringCchCatW(path, lengthof(path), messageDllName)))
return 0;
return LoadLibraryEx(path, NULL, LOAD_LIBRARY_AS_DATAFILE);
return LoadLibraryEx(path, NULL, LOAD_LIBRARY_AS_DATAFILE);
}
LANGID GetUsersPreferredUILanguage()
......@@ -136,7 +136,7 @@ LANGID GetUsersPreferredUILanguage()
DWORD data = 0;
DWORD cbData = sizeof(DWORD);
DWORD regType = 0;
if (ERROR_SUCCESS == RegQueryValueExA(hkey, UILANGUAGE_REG_VALUE, 0, &regType, (LPBYTE) &data, &cbData) &&
if (ERROR_SUCCESS == RegQueryValueExA(hkey, UILANGUAGE_REG_VALUE, 0, &regType, (LPBYTE)&data, &cbData) &&
cbData == sizeof(DWORD) && regType == REG_DWORD)
{
langid = LANGIDFROMLCID(data);
......@@ -166,27 +166,27 @@ LANGID GetUsersPreferredUILanguage()
HINSTANCE FindMessageDllTryDefaultLang(LANGID *langid, bool fCheckLangID, LPCWSTR messageDllName)
{
HINSTANCE hModuleMessagesLocal = FindMessageDll(*langid, fCheckLangID, messageDllName);
HINSTANCE hModuleMessagesLocal = FindMessageDll(*langid, fCheckLangID, messageDllName);
if (!hModuleMessagesLocal)
{
*langid = MAKELANGID(PRIMARYLANGID(*langid), SUBLANG_DEFAULT);
hModuleMessagesLocal = FindMessageDll(*langid, fCheckLangID, messageDllName);
hModuleMessagesLocal = FindMessageDll(*langid, fCheckLangID, messageDllName);
}
return hModuleMessagesLocal;
}
typedef BOOL ( __stdcall * GET_PREFERRED_UI_LANGUAGES_PROTOTYPE ) ( DWORD, PULONG, PCWSTR, PULONG );
typedef BOOL(__stdcall * GET_PREFERRED_UI_LANGUAGES_PROTOTYPE) (DWORD, PULONG, PCWSTR, PULONG);
HINSTANCE FindMessageDllTryProcessPreferredUILangs(LANGID *langid, LPCWSTR messageDllName)
{
HINSTANCE hModuleMessages = 0;
HMODULE hKernel = GetModuleHandleA("kernel32.dll");
if (hKernel)
{
ULONG size=0;
GET_PREFERRED_UI_LANGUAGES_PROTOTYPE pfnGetProcessPreferredUILanguages =
ULONG size = 0;
GET_PREFERRED_UI_LANGUAGES_PROTOTYPE pfnGetProcessPreferredUILanguages =
(GET_PREFERRED_UI_LANGUAGES_PROTOTYPE)GetProcAddress(hKernel, "GetProcessPreferredUILanguages");
if (pfnGetProcessPreferredUILanguages != NULL)
{
......@@ -202,16 +202,16 @@ HINSTANCE FindMessageDllTryProcessPreferredUILangs(LANGID *langid, LPCWSTR messa
{
// Go through all the languages and try to find a resource dll.
WCHAR *curLangId = langids;
for (ULONG i=0; i < numLangs; i++)
for (ULONG i = 0; i < numLangs; i++)
{
// The string returned will be in hex and each lang is delimited by a '\0'.
// For en-us(1033) the string will be "0409\0\0".
WCHAR *nextLangId = NULL;
*langid = (LANGID)wcstol(curLangId, &nextLangId, 16);
*langid = (LANGID)wcstol(curLangId, &nextLangId, 16);
if (*langid)
{
hModuleMessages = FindMessageDllTryDefaultLang(langid, false, messageDllName);
hModuleMessages = FindMessageDllTryDefaultLang(langid, false, messageDllName);
if (hModuleMessages)
{
......@@ -233,13 +233,13 @@ HINSTANCE GetMessageDll(LPCWSTR uiDllname)
HINSTANCE hModuleMessagesLocal = 0;
// Try the process preferred ui langs. csc.exe set this when /preferreduilang switch is passed in.
hModuleMessagesLocal = FindMessageDllTryProcessPreferredUILangs(&langid, uiDllname);
hModuleMessagesLocal = FindMessageDllTryProcessPreferredUILangs(&langid, uiDllname);
// Next try user's preferred language
if (!hModuleMessagesLocal)
{
langid = GetUsersPreferredUILanguage();
hModuleMessagesLocal = FindMessageDllTryDefaultLang(&langid, true, uiDllname);
hModuleMessagesLocal = FindMessageDllTryDefaultLang(&langid, true, uiDllname);
}
// Try a fall-back list of locales.
......@@ -248,7 +248,7 @@ HINSTANCE GetMessageDll(LPCWSTR uiDllname)
for (unsigned int i = 0; i < lengthof(g_fallbackLangs); ++i)
{
langid = g_fallbackLangs[i];
hModuleMessagesLocal = FindMessageDll(langid, false, uiDllname);
hModuleMessagesLocal = FindMessageDll(langid, false, uiDllname);
if (hModuleMessagesLocal)
break;
}
......@@ -257,9 +257,9 @@ HINSTANCE GetMessageDll(LPCWSTR uiDllname)
// Try current directory.
if (!hModuleMessagesLocal)
{
langid = (LANGID) - 1;
hModuleMessagesLocal = FindMessageDll((LANGID)-1, false, uiDllname);
langid = (LANGID)-1;
hModuleMessagesLocal = FindMessageDll((LANGID)-1, false, uiDllname);
}
return hModuleMessagesLocal;
return hModuleMessagesLocal;
}
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Open Technologies, Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="Settings">
<Import Project="..\..\..\Tools\Microsoft.CodeAnalysis.Toolset.Open\Targets\VSL.Settings.targets" />
</ImportGroup>
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<OutDir>..\..\..\..\Binaries\$(Configuration)\</OutDir>
<Platform Condition="'$(Platform)' == ''">AnyCPU</Platform>
<ProjectGuid>{A99A42CF-F183-4E98-AE6E-F04314485928}</ProjectGuid>
<SccProjectName>SAK</SccProjectName>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
<SccProvider>SAK</SccProvider>
<Keyword>Win32Proj</Keyword>
<RootNamespace>VBCSC2UI</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"></ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
<CallingConvention>Cdecl</CallingConvention>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile />
<PrecompiledHeaderOutputFile />
</ClCompile>
<Link>
<AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\NativeClient\UIStrings.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\NativeClient\UIStrings.rc" />
</ItemGroup>
<ImportGroup Label="ExtensionTargets"></ImportGroup>
<ImportGroup Label="Targets">
<Import Project="..\..\..\Tools\Microsoft.CodeAnalysis.Toolset.Open\Targets\VSL.Imports.targets" />
</ImportGroup>
</Project>
\ No newline at end of file
// dllmain.cpp : Defines the entry point for the DLL application.
#include <windows.h>
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
......@@ -42,6 +42,10 @@
<Name>CodeAnalysis.Desktop</Name>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\Core\VBCSC2UI\VBCSC2UI.vcxproj">
<Project>{a99a42cf-f183-4e98-ae6e-f04314485928}</Project>
<Name>VBCSC2UI</Name>
</ProjectReference>
<ProjectReference Include="..\CSharp\csc2\csc2.vcxproj">
<Project>{63d0f073-f0b3-42cd-829f-e48b977b48ba}</Project>
<Name>csc2</Name>
......
......@@ -3,5 +3,5 @@
int main(int argc, char * argv[])
{
return Run(RequestLanguage::VBCOMPILE, L"vbc2.resources.dll");
return Run(RequestLanguage::VBCOMPILE);
}
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.22004.0
VisualStudioVersion = 14.0.22117.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysisTest", "Compilers\Core\CodeAnalysisTest\CodeAnalysisTest.csproj", "{A4C99B85-765C-4C65-9C2A-BB609AAB09E6}"
EndProject
......@@ -156,6 +156,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NativeClientTests", "Compil
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NativeClient", "Compilers\Core\NativeClient\NativeClient.vcxproj", "{D8BEFB58-C728-4C48-AD22-77EDBE334A8E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VBCSC2UI", "Compilers\Core\VBCSC2UI\VBCSC2UI.vcxproj", "{A99A42CF-F183-4E98-AE6E-F04314485928}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
......@@ -204,16 +206,14 @@ Global
{AC2BE224-FB28-40D4-B174-63CABDD488ED}.Release|x86.ActiveCfg = Release|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Debug|ARM.ActiveCfg = Debug|ARM
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Debug|ARM.Build.0 = Debug|ARM
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Debug|ARM.ActiveCfg = Debug|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Debug|Win32.ActiveCfg = Debug|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Debug|x86.ActiveCfg = Debug|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Release|Any CPU.Build.0 = Release|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Release|ARM.ActiveCfg = Release|ARM
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Release|ARM.Build.0 = Release|ARM
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Release|ARM.ActiveCfg = Release|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{1EE8CAD3-55F9-4D91-96B2-084641DA9A6C}.Release|Win32.ActiveCfg = Release|Any CPU
......@@ -280,16 +280,14 @@ Global
{63D0F073-F0B3-42CD-829F-E48B977B48BA}.Release|x86.Build.0 = Release|Win32
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Debug|ARM.ActiveCfg = Debug|ARM
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Debug|ARM.Build.0 = Debug|ARM
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Debug|ARM.ActiveCfg = Debug|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Debug|Win32.ActiveCfg = Debug|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Debug|x86.ActiveCfg = Debug|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Release|Any CPU.Build.0 = Release|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Release|ARM.ActiveCfg = Release|ARM
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Release|ARM.Build.0 = Release|ARM
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Release|ARM.ActiveCfg = Release|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{B501A547-C911-4A05-AC6E-274A50DFF30E}.Release|Win32.ActiveCfg = Release|Any CPU
......@@ -500,16 +498,14 @@ Global
{4A40DFE7-34B3-5931-D055-4258510BA9D1}.Release|x86.Build.0 = Release|Win32
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Debug|ARM.ActiveCfg = Debug|ARM
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Debug|ARM.Build.0 = Debug|ARM
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Debug|ARM.ActiveCfg = Debug|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Debug|Win32.ActiveCfg = Debug|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Debug|x86.ActiveCfg = Debug|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Release|Any CPU.Build.0 = Release|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Release|ARM.ActiveCfg = Release|ARM
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Release|ARM.Build.0 = Release|ARM
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Release|ARM.ActiveCfg = Release|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2523D0E6-DF32-4A3E-8AE0-A19BFFAE2EF6}.Release|Win32.ActiveCfg = Release|Any CPU
......@@ -934,48 +930,42 @@ Global
{0A0621F2-D1DC-47FF-B643-C6646557505E}.Release|x86.ActiveCfg = Release|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Debug|ARM.ActiveCfg = Debug|ARM
{DFA21CA1-7F96-47EE-940C-069858E81727}.Debug|ARM.Build.0 = Debug|ARM
{DFA21CA1-7F96-47EE-940C-069858E81727}.Debug|ARM.ActiveCfg = Debug|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Debug|Win32.ActiveCfg = Debug|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Debug|x86.ActiveCfg = Debug|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Release|Any CPU.Build.0 = Release|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Release|ARM.ActiveCfg = Release|ARM
{DFA21CA1-7F96-47EE-940C-069858E81727}.Release|ARM.Build.0 = Release|ARM
{DFA21CA1-7F96-47EE-940C-069858E81727}.Release|ARM.ActiveCfg = Release|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Release|Win32.ActiveCfg = Release|Any CPU
{DFA21CA1-7F96-47EE-940C-069858E81727}.Release|x86.ActiveCfg = Release|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Debug|ARM.ActiveCfg = Debug|ARM
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Debug|ARM.Build.0 = Debug|ARM
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Debug|ARM.ActiveCfg = Debug|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Debug|Win32.ActiveCfg = Debug|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Debug|x86.ActiveCfg = Debug|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Release|Any CPU.Build.0 = Release|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Release|ARM.ActiveCfg = Release|ARM
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Release|ARM.Build.0 = Release|ARM
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Release|ARM.ActiveCfg = Release|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Release|Win32.ActiveCfg = Release|Any CPU
{73F3E2C5-D742-452E-B9E1-20732DDBC75D}.Release|x86.ActiveCfg = Release|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Debug|Any CPU.Build.0 = Debug|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Debug|ARM.ActiveCfg = Debug|ARM
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Debug|ARM.Build.0 = Debug|ARM
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Debug|ARM.ActiveCfg = Debug|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Debug|Win32.ActiveCfg = Debug|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Debug|x86.ActiveCfg = Debug|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Release|Any CPU.ActiveCfg = Release|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Release|Any CPU.Build.0 = Release|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Release|ARM.ActiveCfg = Release|ARM
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Release|ARM.Build.0 = Release|ARM
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Release|ARM.ActiveCfg = Release|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{079AF8EF-1058-48B6-943F-AB02D39E0641}.Release|Win32.ActiveCfg = Release|Any CPU
......@@ -1026,6 +1016,22 @@ Global
{D8BEFB58-C728-4C48-AD22-77EDBE334A8E}.Release|Win32.Build.0 = Release|Win32
{D8BEFB58-C728-4C48-AD22-77EDBE334A8E}.Release|x86.ActiveCfg = Release|Win32
{D8BEFB58-C728-4C48-AD22-77EDBE334A8E}.Release|x86.Build.0 = Release|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Debug|Any CPU.ActiveCfg = Debug|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Debug|ARM.ActiveCfg = Debug|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Debug|Win32.ActiveCfg = Debug|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Debug|Win32.Build.0 = Debug|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Debug|x86.ActiveCfg = Debug|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Debug|x86.Build.0 = Debug|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Release|Any CPU.ActiveCfg = Release|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Release|ARM.ActiveCfg = Release|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Release|Mixed Platforms.Build.0 = Release|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Release|Win32.ActiveCfg = Release|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Release|Win32.Build.0 = Release|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Release|x86.ActiveCfg = Release|Win32
{A99A42CF-F183-4E98-AE6E-F04314485928}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......@@ -1098,9 +1104,10 @@ Global
{909B656F-6095-4AC2-A5AB-C3F032315C45} = {FD0FAF5F-1DED-485C-99FA-84B97F3A8EEC}
{690CACA9-9F32-47DA-B61D-55231257CBA3} = {14B2BA6C-0448-463B-ACBB-E09F63C0C9CD}
{D8BEFB58-C728-4C48-AD22-77EDBE334A8E} = {A41D1B99-F489-4C43-BBDF-96D61B19A6B9}
{A99A42CF-F183-4E98-AE6E-F04314485928} = {A41D1B99-F489-4C43-BBDF-96D61B19A6B9}
EndGlobalSection
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 57
SccNumberOfProjects = 58
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccTeamFoundationServer = http://vstfdevdiv:8080/devdiv2
SccProjectUniqueName0 = Compilers\\Core\\Portable\\CodeAnalysis.csproj
......@@ -1445,5 +1452,11 @@ Global
SccAuxPath56 = http://vstfdevdiv:8080/devdiv2
SccLocalPath56 = Compilers\\Core\\NativeClient
SccProvider56 = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
SccProjectUniqueName57 = Compilers\\Core\\VBCSC2UI\\VBCSC2UI.vcxproj
SccProjectTopLevelParentUniqueName57 = Roslyn.sln
SccProjectName57 = Compilers/Core/VBCSC2UI
SccAuxPath57 = http://vstfdevdiv:8080/devdiv2
SccLocalPath57 = Compilers\\Core\\VBCSC2UI
SccProvider57 = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
EndGlobalSection
EndGlobal
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册