Build an OpenGL ES Application on Android and iOSBuild an OpenGL ES Application on Android and iOS

플랫폼 간 모바일 개발용 Visual C++ 옵션을 설치하는 경우 공통 코드를 공유하는 iOS 앱과 Android 앱에 대한 Visual Studio 솔루션 및 프로젝트를 만들 수 있습니다.When you install the Visual C++ for Cross-Platform Mobile Development option, you can create Visual Studio solutions and projects for iOS apps and Android apps that share common code. 이 항목에서는 간단한 iOS 앱과 Android Native Activity 앱 둘 다를 만드는 솔루션 템플릿을 안내합니다.This topic guides you through a solution template that creates both a simple iOS app and an Android Native Activity app. 앱에는 공통적으로 OpenGL ES를 사용하여 각 플랫폼에서 동일한 애니메이션 회전 큐브를 표시하는 C++ 코드가 있습니다.The apps have C++ code in common that uses OpenGL ES to display the same animated rotating cube on each platform. OpenGL ES(OpenGL for Embedded Systems 또는 GLES)는 다양한 모바일 장치에서 지원되는 2D 및 3D 그래픽 API입니다.OpenGL ES (OpenGL for Embedded Systems or GLES) is a 2D and 3D graphics API that is supported on many mobile devices.

요구 사항 Requirements
새 OpenGLES 응용 프로그램 프로젝트 만들기 Create a new OpenGLES Application project
Android 앱 빌드 및 실행 Build and run the Android app
iOS 앱 빌드 및 실행 Build and run the iOS app
앱 사용자 지정Customize your apps

요구 사항Requirements

iOS 및 Android용 OpenGL ES 앱을 개발하려면 먼저 모든 시스템 요구 사항을 충족했는지 확인해야 합니다.Before you can create an OpenGL ES app for iOS and Android, you must make sure you've met all system requirements. Visual Studio 2015의 플랫폼 간 모바일 개발용 Visual C++ 옵션을 설치해야 합니다.You must install the Visual C++ for Cross-Platform Mobile Development option in Visual Studio 2015. 필요한 타사 도구 및 SDK가 설치에 포함되어 있고 Android용 Visual Studio 에뮬레이터가 설치되어 있는지 확인합니다.Make sure that the required third-party tools and SDKs are included in the installation, and that the Visual Studio Emulator for Android is installed. 자세한 내용 및 자세한 지침은 Install Visual C++ for Cross-Platform Mobile Development를 참조하세요.For more information and detailed instructions, see Install Visual C++ for Cross-Platform Mobile Development. iOS 앱을 빌드 및 테스트하려면 Mac 컴퓨터가 필요하며 설치 지침에 따라 설치해야 합니다.To build and test the iOS app, you'll need a Mac computer, set up according to the installation instructions. iOS 개발을 위해 설치하는 방법에 대한 자세한 내용은 Install And Configure Tools to Build using iOSFor more information about how to set up for iOS development, see Install And Configure Tools to Build using iOS

새 OpenGLES 응용 프로그램 프로젝트 만들기Create a new OpenGLES Application project

이 자습서에서는 먼저 새 OpenGL ES 응용 프로그램 프로젝트를 만든 후 Android용 Visual Studio 에뮬레이터에서 기본 앱을 빌드 및 실행합니다.In this tutorial, you first create a new OpenGL ES Application project and then build and run the default app in the Visual Studio Emulator for Android. 그런 다음 iOS용 앱을 빌드하고 iOS 시뮬레이터에서 앱을 실행합니다.Next you build the app for iOS and run the app in the iOS Simulator.

새 프로젝트를 만들려면To create a new project

  1. Visual Studio를 엽니다.Open Visual Studio. 메뉴 모음에서 파일, 새로 만들기, 프로젝트를 차례로 선택합니다.On the menu bar, choose File, New, Project.

  2. 새 프로젝트 대화 상자의 템플릿에서 Visual C++, 플랫폼 간을 차례로 선택한 후 OpenGLES 응용 프로그램(Android, iOS) 템플릿을 선택합니다.In the New Project dialog box, under Templates, choose Visual C++, Cross Platform, and then choose the OpenGLES Application (Android, iOS) template.

  3. 앱의 이름을 MyOpenGLESApp과 같이 지정한 후 확인을 선택합니다.Give the app a name like MyOpenGLESApp, and then choose OK.

    새 OpenGLES 응용 프로그램 프로젝트New OpenGLES Application project

    새 솔루션이 만들어지고 솔루션 탐색기가 열립니다.Visual Studio creates the new solution and opens Solution Explorer.

    솔루션 탐색기의 MyOpenGLESAppMyOpenGLESApp in Solution Explorer

    새 OpenGL ES 응용 프로그램 솔루션에 라이브러리 프로젝트 3개와 응용 프로그램 프로젝트 2개가 포함됩니다.The new OpenGL ES Application solution includes three library projects and two application projects. 라이브러리 폴더에는 공유 코드 프로젝트 1개와 공유 코드를 참조하는 플랫폼별 프로젝트 2개가 포함됩니다.The Libraries folder includes a shared code project and two platform-specific projects that reference the shared code:

  • MyOpenGLESApp.Android.NativeActivity 에는 참조 및 Android에서 Native Activity로 앱을 구현하는 글루 코드가 포함됩니다.MyOpenGLESApp.Android.NativeActivity contains the references and glue code that implements your app as a Native Activity on Android. 글루 코드에서 진입점의 구현은 MyOpenGLESApp.Shared의 공용 공유 코드를 포함하는 main.cpp에 있습니다.The implementation of the entry points from the glue code are in main.cpp, which includes the common shared code in MyOpenGLESApp.Shared. 미리 컴파일된 헤더는 pch.h에 있습니다.Precompiled headers are in pch.h. 이 Native Activity 앱 프로젝트는 MyOpenGLESApp.Android.Packaging 프로젝트에서 선택된 공유 라이브러리(.so) 파일로 컴파일됩니다.This Native Activity app project is compiled into a shared library (.so) file which is picked up by the MyOpenGLESApp.Android.Packaging project.

  • MyOpenGLESApp.iOS.StaticLibrary 는 MyOpenGLESApp.Shared의 공유 코드를 포함하는 iOS 정적 라이브러리(.a) 파일을 만듭니다.MyOpenGLESApp.iOS.StaticLibrary creates an iOS static library (.a) file that contains the shared code in MyOpenGLESApp.Shared. 이 파일은 MyOpenGLESApp.iOS.Application 프로젝트에서 만든 앱에 연결됩니다.It is linked to the app created by the MyOpenGLESApp.iOS.Application project.

  • MyOpenGLESApp.Shared 에는 플랫폼 간에 작동하는 공유 코드가 포함됩니다.MyOpenGLESApp.Shared contains the shared code that works across platforms. 플랫폼별 코드의 조건부 컴파일에 전처리기 매크로를 사용합니다.It uses preprocessor macros for conditional compilation of platform-specific code. 공유 코드는 MyOpenGLESApp.Android.NativeActivity 및 MyOpenGLESApp.iOS.StaticLibrary 둘 다에서 프로젝트 참조에 의해 선택됩니다.The shared code is picked up by project reference in both MyOpenGLESApp.Android.NativeActivity and MyOpenGLESApp.iOS.StaticLibrary.

    솔루션에는 Android 및 iOS 플랫폼용 앱을 빌드하는 두 프로젝트가 있습니다.The solution has two projects to build the apps for the Android and iOS platforms:

  • MyOpenGLESApp.Android.Packaging 은 Android 장치 또는 에뮬레이터에 배포하기 위한 .apk 파일을 만듭니다.MyOpenGLESApp.Android.Packaging creates the .apk file for deployment on an Android device or emulator. 이 프로젝트에는 리소스와 매니페스트 속성을 설정하는 AndroidManifest.xml 파일이 포함되어 있습니다.This contains the resources and AndroidManifest.xml file where you set manifest properties. Ant 빌드 프로세스를 제어하는 build.xml 파일도 포함되어 있습니다.It also contains the build.xml file that controls the Ant build process. 이 프로젝트는 기본적으로 시작 프로젝트로 설정되므로 Visual Studio에서 직접 배포 및 실행할 수 있습니다.It's set as the startup project by default, so that it can be deployed and run directly from Visual Studio.

  • MyOpenGLESApp.iOS.Application 에는 MyOpenGLESApp.iOS.StaticLibrary의 C++ 정적 라이브러리 코드에 연결되는 iOS 앱을 개발하기 위한 리소스와 Objective-C 글루 코드가 포함됩니다.MyOpenGLESApp.iOS.Application contains the resources and Objective-C glue code to create an iOS app that links to the C++ static library code in MyOpenGLESApp.iOS.StaticLibrary. 이 프로젝트는 Visual Studio 및 원격 에이전트에서 Mac으로 전송되는 빌드 패키지를 만듭니다.This project creates a build package that is transferred to your Mac by Visual Studio and the remote agent. 이 프로젝트를 빌드하면 Visual Studio가 Mac에서 앱을 빌드하고 배포하기 위한 파일과 명령을 보냅니다.When you build this project, Visual Studio sends the files and commands to build and deploy your app on the Mac.

Android 앱 빌드 및 실행Build and run the Android app

템플릿에서 만든 솔루션은 Android 앱을 기본 프로젝트로 설정합니다.The solution created by the template sets the Android app as the default project. 이 앱을 빌드 및 실행하여 설치 및 설정을 확인할 수 있습니다.You can build and run this app to verify your installation and setup. 초기 테스트의 경우 Android용 Visual Studio 에뮬레이터에 의해 설치된 장치 프로필 중 하나에서 앱을 실행합니다.For an initial test, run the app on one of the device profiles installed by the Visual Studio Emulator for Android. 다른 대상에서 앱을 테스트하려는 경우 대상 에뮬레이터를 로드하거나 장치를 컴퓨터에 연결할 수 있습니다.If you prefer to test your app on another target, you can load the target emulator or connect the device to your computer.

Android Native Activity 앱을 빌드 및 실행하려면To build and run the Android Native Activity app

  1. 아직 선택하지 않은 경우 솔루션 플랫폼 드롭다운 목록에서 x86 을 선택합니다.If it is not already selected, choose x86 from the Solution Platforms drop-down list.

    솔루션 플랫폼을 x86으로 설정Set the Solution Platform to x86

    x86을 사용하여 Windows용 Android 에뮬레이터를 대상으로 지정합니다.Use x86 to target the Android Emulator for Windows. 장치를 대상으로 지정하는 경우 장치 프로세서에 따라 솔루션 플랫폼을 선택합니다.If you are targeting a device, choose the solution platform based on the device processor. 솔루션 플랫폼 목록이 표시되지 않는 경우 단추 추가/제거 목록에서 솔루션 플랫폼을 선택한 후 플랫폼을 선택합니다.If the Solution Platforms list isn't displayed, choose Solution Platforms from the Add/Remove Buttons list, and then choose your platform.

  2. 솔루션 탐색기에서 MyOpenGLESApp.Android.Packaging 프로젝트의 바로 가기 메뉴를 열고 빌드를 선택합니다.In Solution Explorer, open the shortcut menu for MyOpenGLESApp.Android.Packaging project and then choose Build.

    Android 패키징 프로젝트 빌드Build Android Packaging Project

    출력 창에 솔루션의 Android 공유 라이브러리 및 Android 앱에 대한 빌드 프로세스 출력이 표시됩니다.The Output window displays the output of the build process for the Android shared library and the Android app.

    Android 프로젝트에 대한 출력 빌드Build Output for Android projects

  3. 배포 대상으로 VS 에뮬레이터 Android Phone(x86) 프로필 중 하나를 선택합니다.Choose one of the VS Emulator Android Phone (x86) profiles as your deployment target.

    배포 대상 선택Choose deployment target

    다른 에뮬레이터를 설치했거나 Android 장치를 연결한 경우 배포 대상 드롭다운 목록에서 선택할 수 있습니다.If you have installed other emulators or connected an Android device, you can choose them in the deployment target drop-down list. 앱을 실행하려면 빌드된 솔루션 플랫폼이 대상 장치의 플랫폼과 일치해야 합니다.To run the app, the built Solution Platform must match the platform of the target device.

  4. F5 키를 눌러 디버깅을 시작하거나 Shift+F5를 눌러 디버깅하지 않고 시작합니다.Press F5 to start debugging, or Shift+F5 to start without debugging.

    에뮬레이터가 시작됩니다. 코드를 로드하고 배포하는 데 몇 초 정도 걸릴 수 있습니다.Visual Studio starts the emulator, which takes several seconds to load and deploy your code. 다음은 앱이 Visual Studio Emulator for Android에 표시되는 방식입니다.Here's how the app appears in the Visual Studio emulator for Android.

    Android 에뮬레이터에서 실행 중인 앱App running in Android Emulator

    앱이 시작되면 중단점을 설정하고 디버거를 사용하여 코드를 단계별로 실행하고 지역을 검토하고 값을 조사할 수 있습니다.Once your app has started, you can set breakpoints and use the debugger to step through code, examine locals, and watch values.

  5. Shift+F5를 눌러 디버깅을 중지합니다.Press Shift + F5 to stop debugging.

    에뮬레이터는 별도의 프로세스로 계속 실행됩니다.The emulator is a separate process that continues to run. 코드를 편집 및 컴파일하여 동일한 에뮬레이터에 여러 번 배포할 수 있습니다.You can edit, compile, and deploy your code multiple times to the same emulator. 앱이 에뮬레이터의 앱 컬렉션에 표시되고, 여기서 직접 시작할 수 있습니다.Your app appears in the app collection on the emulator, and it can be started from there directly.

    생성된 Android Native Activity 앱 및 라이브러리 프로젝트는 Android 플랫폼과 인터페이스하기 위한 "글루" 코드를 포함하는 C++ 공유 코드를 동적 라이브러리에 배치합니다.The generated Android Native Activity app and library projects put the C++ shared code in a dynamic library that includes "glue" code to interface with the Android platform. 즉, 대부분의 앱 코드는 라이브러리에 있고 매니페스트, 리소스 및 빌드 지침은 패키징 프로젝트에 있습니다.This means most of the app code is in the library, and the manifest, resources, and build instructions are in the packaging project. 공유 코드는 NativeActivity 프로젝트의 main.cpp에서 호출됩니다.The shared code is called from main.cpp in the NativeActivity project. Android NativeActivity를 프로그래밍하는 방법에 대한 자세한 내용은 Android 개발자 NDK 개념 페이지를 참조하세요.For more information about how to program an Android Native Activity, see the Android Developer NDK Concepts page.

    Visual Studio는 Clang을 플랫폼 도구 집합으로 사용하는 Android NDK를 사용하여 Android Native Activity 프로젝트를 빌드합니다.Visual Studio builds Android Native Activity projects by using the Android NDK, which uses Clang as the platform toolset. Visual Studio는 NativeActivity 프로젝트의 속성을 대상 플랫폼에서 컴파일, 연결 및 디버그하는 데 사용되는 명령줄 스위치 및 옵션에 매핑합니다.Visual Studio maps the properties in the NativeActivity project to the command-line switches and options that are used to compile, link, and debug on the target platform. 자세한 내용을 보려면 MyOpenGLESApp.Android.NativeActivity 프로젝트에 대한 속성 페이지 대화 상자를 엽니다.For details, open the Property Pages dialog for the MyOpenGLESApp.Android.NativeActivity project. 명령줄 스위치에 대한 자세한 내용은 Clang 컴파일러 사용자 설명서를 참조하세요.For more information about the command line switches, see the Clang Compiler User's Manual.

iOS 앱 빌드 및 실행Build and run the iOS app

iOS 앱 프로젝트는 Visual Studio에서 개발되고 편집되지만 라이선싱 제한 사항 때문에 Mac에서 빌드하고 배포해야 합니다.The iOS app project is created and edited in Visual Studio, but because of licensing restrictions, it must be built and deployed from a Mac. Visual Studio는 Mac에서 실행되는 원격 에이전트와 통신하여 프로젝트 파일을 전송하고 빌드, 배포 및 디버깅 명령을 실행합니다.Visual Studio communicates with a remote agent running on the Mac to transfer project files and execute build, deployment, and debugging commands. iOS 앱을 빌드하려면 먼저 Mac 및 Visual Studio를 통신하도록 설정 및 구성해야 합니다.You must set up and configure your Mac and Visual Studio to communicate before you can build the iOS app. 자세한 내용은 Install And Configure Tools to Build using iOS을 참조하세요.For detailed instructions, see Install And Configure Tools to Build using iOS. 원격 에이전트가 실행되고 Visual Studio가 Mac과 쌍으로 연결되면 iOS 앱을 빌드 및 실행하여 설치 및 설정을 확인할 수 있습니다.Once the remote agent is running and Visual Studio is paired with your Mac, you can build and run the iOS app to verify your installation and setup.

iOS 앱을 빌드하고 실행하려면To build and run the iOS app

  1. 원격 에이전트가 Mac에서 실행되고 Visual Studio가 원격 에이전트와 쌍으로 연결되었는지 확인합니다.Verify that the remote agent is running on your Mac, and that Visual Studio is paired to the remote agent. 원격 에이전트를 시작하려면 터미널 앱 창을 열고 vcremote를 참조하세요.To start the remote agent, open a Terminal app window and enter vcremote. 자세한 내용은 Visual Studio에서 원격 에이전트 구성을 참조하세요.For more information, see Configure the remote agent in Visual Studio.

    vcremote를 실행하는 Mac 터미널 창Mac Terminal window running vcremote

  2. 아직 선택하지 않은 경우 솔루션 플랫폼 드롭다운 목록에서 x86 을 선택합니다.If it is not already selected, choose x86 from the Solution Platforms drop-down list.

    솔루션 플랫폼을 x86으로 설정Set the Solution Platform to x86

    x86을 사용하여 iOS 시뮬레이터를 대상으로 지정합니다.Use x86 to target the iOS Simulator. iOS 장치를 대상으로 지정하는 경우 장치 프로세서(일반적으로 ARM 프로세서)에 따라 솔루션 플랫폼을 선택합니다.If you are targeting an iOS device, choose the solution platform based on the device processor (usually an ARM processor). 솔루션 플랫폼 목록이 표시되지 않는 경우 단추 추가/제거 목록에서 솔루션 플랫폼을 선택한 후 플랫폼을 선택합니다.If the Solution Platforms list isn't displayed, choose Solution Platforms from the Add/Remove Buttons list, and then choose your platform.

  3. 솔루션 탐색기에서 MyOpenGLESApp.iOS.Application 프로젝트의 바로 가기 메뉴를 열고 빌드를 선택합니다.In Solution Explorer, open the shortcut menu for the MyOpenGLESApp.iOS.Application project and choose Build.

    iOS 응용 프로그램 프로젝트 빌드Build iOS Application project

    출력 창에 솔루션의 iOS 정적 라이브러리 및 iOS 앱에 대한 빌드 프로세스 출력이 표시됩니다.The Output window displays the output of the build process for the iOS static library and the iOS app. Mac에서 원격 에이전트를 실행하는 터미널 창에 명령 및 파일 전송 작업이 표시됩니다.On the Mac, the Terminal window running the remote agent shows the command and file transfer activity.

    Mac 컴퓨터에 코드 서명 요청을 수락하라는 메시지가 표시될 수도 있습니다.On your Mac computer, you may be prompted at accept a code signing request. 계속하려면 허용을 선택합니다.Choose Allow to continue.

  4. 도구 모음에서 iOS 시뮬레이터 를 선택하여 Mac의 iOS 시뮬레이터에서 앱을 실행합니다.Choose iOS Simulator on the toolbar to run the app in the iOS Simulator on your Mac. 시뮬레이터를 시작하는 데 시간이 걸릴 수 있습니다.It may take a moment to start the simulator. 출력을 보기 위해 Mac에서 시뮬레이터를 포그라운드로 전환해야 할 수도 있습니다.You may have to bring the simulator to the foreground on your Mac to see its output.

    iOS 시뮬레이터에서 실행 중인 앱App running on iOS Simulator

    앱이 시작되면 중단점을 설정하고 Visual Studio 디버거를 사용하여 지역을 검사하고, 호출 스택을 확인하고, 값을 조사할 수 있습니다.Once your app has started, you can set breakpoints and use the Visual Studio debugger to examine locals, see the call stack, and watch values.

    iOS 앱의 중단점에서 디버거Debugger at breakpoint in iOS app

  5. Shift+F5를 눌러 디버깅을 중지합니다.Press Shift + F5 to stop debugging.

    iOS 시뮬레이터는 Mac에서 별도의 프로세스로 계속 실행됩니다.The iOS Simulator is a separate process that continues to run on your Mac. 코드를 편집 및 컴파일하여 동일한 iOS 시뮬레이터 인스턴스에 여러 번 배포할 수 있습니다.You can edit, compile, and deploy your code multiple times to the same iOS Simulator instance. 배포된 후 시뮬레이터에서 직접 코드를 실행할 수도 있습니다.You can also run your code directly in the simulator after it has been deployed.

    생성된 iOS 앱 및 라이브러리 프로젝트는 공유 코드만 구현하는 C++ 코드를 정적 라이브러리에 넣습니다.The generated iOS app and library projects put the C++ code in a static library that implements only the shared code. 대부분의 응용 프로그램 코드는 응용 프로그램 프로젝트에 있습니다.Most of the application code is in the Application project. 이 템플릿 프로젝트의 공유 라이브러리 코드 호출은 GameViewController.m 파일에서 수행됩니다.The calls to the shared library code in this template project are made in the GameViewController.m file. iOS 앱을 빌드하기 위해 Visual Studio는 Mac에서 실행되는 원격 클라이언트와 통신해야 하는 Xcode 플랫폼 도구 집합을 사용합니다.To build your iOS app, Visual Studio uses the Xcode platform toolset, which requires communication with a remote client that is running on a Mac.

    Visual Studio는 프로젝트 파일을 전송하고 Xcode를 사용하여 앱을 빌드하는 명령을 원격 클라이언트에 보냅니다.Visual Studio transfers the project files and sends commands to the remote client to build the app using Xcode. 원격 클라이언트는 빌드 상태 정보를 Visual Studio로 다시 보냅니다.The remote client sends build status information back to Visual Studio. 앱이 성공적으로 빌드된 경우 Visual Studio를 사용하여 앱을 실행 및 디버그하는 명령을 보낼 수 있습니다.When the app has built successfully, you can use Visual Studio to send commands to run and debug the app. Visual Studio의 디버거는 Mac에서 실행되는 iOS 시뮬레이터 또는 연결된 iOS 장치에서 실행 중인 앱을 제어합니다.The debugger in Visual Studio controls the app running in the iOS Simulator running on your Mac, or on an attached iOS device. Visual Studio는 StaticLibrary 프로젝트의 속성을 대상 iOS 플랫폼에서 빌드, 연결 및 디버그하는 데 사용되는 명령줄 스위치 및 옵션에 매핑합니다.Visual Studio maps the properties in the StaticLibrary project to the command-line switches and options that are used to build, link, and debug on the target iOS platform. 컴파일러 명령줄 옵션에 대한 자세한 내용을 보려면 MyOpenGLESApp.iOS.StaticLibrary 프로젝트에 대한 속성 페이지 대화 상자를 엽니다.For compiler command-line option details, open the Property Pages dialog for the MyOpenGLESApp.iOS.StaticLibrary project.

앱 사용자 지정Customize your apps

공유 C++ 코드를 수정하여 공통 기능을 추가하거나 변경할 수 있습니다.You can modify the shared C++ code to add or change common functionality. MyOpenGLESApp.Android.NativeActivity 및 MyOpenGLESApp.iOS.Application 프로젝트에서 공유 코드 호출을 일치하도록 변경해야 합니다.You must change the calls to the shared code in the MyOpenGLESApp.Android.NativeActivity and MyOpenGLESApp.iOS.Application projects to match. 전처리기 매크로를 사용하여 공통 코드에서 플랫폼별 섹션을 지정할 수 있습니다.You can use preprocessor macros to specify platform-specific sections in your common code. 전처리기 매크로 __ANDROID__ 는 Android용으로 빌드할 때 미리 정의됩니다.The preprocessor macro __ANDROID__ is predefined when you build for Android. 전처리기 매크로 __APPLE__ 는 iOS용으로 빌드할 때 미리 정의됩니다.The preprocessor macro __APPLE__ is predefined when you build for iOS.

특정 프로젝트 플랫폼에 대한 IntelliSense를 보려면 편집기 창의 위쪽 탐색 모음에 있는 컨텍스트 전환기 드롭다운에서 프로젝트를 선택합니다.To see the IntelliSense for a particular project platform, choose the project in the context switcher dropdown in the Navigation bar at the top of the editor window.

편집기의 프로젝트 컨텍스트 전환기 드롭다운Project Context Switcher dropdown in Editor

현재 프로젝트의 IntelliSense 문제는 빨간색 물결선으로 표시됩니다.IntelliSense issues in the current project are marked with a red wavy line. 다른 프로젝트의 문제는 자주색 물결선으로 표시됩니다.Issues in other projects are marked with a purple wavy line. 기본적으로 Visual Studio는 Java 또는 Objective-C 파일에 대해 코드 색 지정 또는 IntelliSense를 지원하지 않습니다.By default, Visual Studio does not support code colorization or IntelliSense for Java or Objective-C files. 그러나 여전히 원본 파일을 수정하고 리소스를 변경하여 응용 프로그램 이름, 아이콘 및 기타 구현 세부 정보를 설정할 수 있습니다.However, you can still modify the source files and change the resources to set your application name, icon, and other implementation details.