Visual Studio 2012에서 WinRT 라이브러리를 사용하여 데스크톱 응용 프로그램을 빌드하려고했습니다. 코드 조각은 다음과 같습니다. 이 지하철을 나열하는 데 사용됩니다릴리스 모드에서 작동하지 않는 WinRT 라이브러리
[STAThread]
int wmain (Platform :: Array <String ^>^args)
{
wcout << L"Copyright (c) Microsoft Corporation. All rights reserved." << endl;
wcout << L"FindPackages sample" << endl << endl;
try
{
auto packageManager = ref new Windows::Management::Deployment::PackageManager();
auto packages = packageManager->FindPackages();
int packageCount = 0;
std::for_each(Windows::Foundation::Collections::begin(packages), Windows::Foundation::Collections::end(packages),
[&packageManager, &packageCount](Windows::ApplicationModel::Package^ package)
{
DisplayPackageInfo(package);
DisplayPackageUsers(packageManager, package);
wcout << endl;
packageCount += 1;
});
}
catch (AccessDeniedException^)
{
wcout << L"FindPackagesSample failed because access was denied. This program must be run from an elevated command prompt." << endl;
return 1;
}
catch (Exception^ ex)
{
wcout << L"FindPackagesSample failed, error message: " << ex->ToString()->Data() << endl;
return 1;
}
getchar();
return 0;
}는 세부 사항을 애플 리케이션. 그리고이 코드는 DEBUG 모드에서 잘 작동합니다. > C/C++ - -> 소비 Windows 런타임 예외 예에 내가
구성 속성 등의 특정 설정을 변경했습니다 :
error LNK2001: unresolved external symbol _NtProcessStartup
참고 : 나는 모드를 해제 변경할 때, 나는 오류를 얻고있다 (/ gm-)
구성 속성 -> C/C++ -> 코드 생성 -> NO (/ gm-)로 최소 재 작성 가능 구성 등록 정보 -> C/C++ -> 코드 생성 -> 런타임 다중 스레드 DLL/MD)
이 설정은 WinRT 라이브러리 포함에 필수 사항이라고합니다. 기본적으로 릴리스 모드에서는 Multi_Threaded (/ MT) 형식으로 코드를 실행해야합니다. 그러나/MT 또는/Mtd는 WinRT 라이브러리에 필요한 (/ ZW) 메서드와 호환되지 않습니다. 실수로 나를 안내하십시오.