DLL(C++/CX)

Visual Studio를 사용하여 표준 Win32 DLL 또는 UWP(유니버설 Windows 플랫폼) 앱에서 사용할 수 있는 Windows 런타임 구성 요소 DLL을 만들 수 있습니다. Visual Studio 2012 이전 버전의 Visual Studio 또는 Microsoft C++ 컴파일러를 사용하여 만든 표준 DLL은 UWP 앱에서 제대로 로드되지 않을 수 있으며 Microsoft Store에서 앱 확인 테스트를 통과하지 못할 수 있습니다.

Windows 런타임 구성 요소 DLL

거의 모든 경우에 UWP 앱에서 사용할 DLL을 만들려는 경우 해당 이름의 프로젝트 템플릿을 사용하여 Windows 런타임 구성 요소로 만듭니다. 공용 또는 프라이빗 Windows 런타임 형식이 있는 DLL에 대한 Windows 런타임 구성 요소 프로젝트를 만들 수 있습니다. Windows 런타임 구성 요소는 Windows 런타임 호환 언어로 작성된 앱에서 액세스할 수 있습니다. 기본적으로 Windows 런타임 구성 요소 프로젝트에 대한 컴파일러 설정은 /ZW 스위치를 사용합니다. .winmd 파일은 루트 네임스페이스와 이름이 같아야 합니다. 예를 들어 A.B.C.MyClass라는 클래스는 A.winmd 또는 A.B.winmd 또는 A.B.C.winmd라는 메타데이터 파일에서 정의된 경우에만 인스턴스화할 수 있습니다. .winmd 파일 이름과 일치시키기 위해 DLL의 이름은 필요하지 않습니다.

자세한 내용은 C++에서 Windows 런타임 구성 요소 만들기를 참조하세요.

프로젝트에서 타사 Windows 런타임 구성 요소 이진 파일을 참조하려면

  1. DLL을 사용하게 될 프로젝트에 대한 바로 가기 메뉴를 연 다음 속성을 선택합니다. 공용 속성 페이지에서 새 참조 추가 단추를 선택합니다.

  2. Windows 런타임 구성 요소는 DLL 파일과 메타데이터를 포함하는 .winmd 파일로 구성됩니다. 일반적으로 이러한 파일은 동일한 폴더에 있습니다. 참조 추가 대화 상자의 왼쪽 창에서 찾아보기 단추를 선택한 다음 DLL 및 .winmd 파일의 위치로 이동합니다. 자세한 내용은 확장 SDK를 참조 하세요.

표준 DLL

공용 Windows 런타임 형식을 사용하거나 생성하지 않고 UWP 앱에서 사용하는 C++ 코드에 대한 표준 DLL을 만들 수 있습니다. 이 버전의 Visual Studio에서 컴파일할 기존 DLL을 마이그레이션하지만 코드를 Windows 런타임 구성 요소 프로젝트로 변환하지 않으려면 DLL(동적 연결 라이브러리) 프로젝트 형식을 사용합니다. 다음 단계를 사용할 때 DLL은 .appx 패키지의 앱 실행 파일과 함께 배포됩니다.

Visual Studio에서 표준 DLL을 만들려면

  1. 메뉴 모음에서 파일, 새로 만들기, 프로젝트를 선택한 다음 DLL(동적 연결 라이브러리) 템플릿을 선택합니다.

  2. 프로젝트의 이름을 입력한 다음 확인 단추를 선택합니다.

  3. 코드를 추가합니다. 내보내려는 함수(예: __declspec(dllexport) )에 대해 __declspec(dllexport) Add(int I, in j);를 사용하세요.

  4. UWP 앱용 Windows SDK에서 해당 헤더 파일을 포함하도록 추가하고 #include winapifamily.h 매크로 WINAPI_FAMILY=WINAPI_PARTITION_APP를 설정합니다.

동일한 솔루션의 표준 DLL 프로젝트를 참조하려면

  1. DLL을 사용하게 될 프로젝트에 대한 바로 가기 메뉴를 연 다음 속성을 선택합니다. 공용 속성 페이지에서 새 참조 추가 단추를 선택합니다.

  2. 왼쪽 창에서 솔루션을 선택한 다음 오른쪽 창에서 적절한 확인란을 선택합니다.

  3. 소스 코드 파일에서 필요에 따라 DLL 헤더 파일에 대해 #include 문을 추가합니다.

표준 DLL 이진 파일을 참조하려면

  1. DLL 파일, .lib 파일 및 헤더 파일을 복사하고 현재 프로젝트 폴더와 같이 알려진 위치에 붙여 넣습니다.

  2. DLL을 사용하게 될 프로젝트에 대한 바로 가기 메뉴를 연 다음 속성을 선택합니다. 구성 속성, 링커, 입력 페이지에서 .lib 파일을 종속성으로 추가합니다.

  3. 소스 코드 파일에서 필요에 따라 DLL 헤더 파일에 대해 #include 문을 추가합니다.

UWP 앱 호환성을 위해 기존 Win32 DLL을 마이그레이션하려면

  1. DLL(유니버설 Windows) 형식의 프로젝트를 만들고 기존 소스 코드를 추가합니다.

  2. UWP 앱용 Windows SDK에서 해당 헤더 파일을 포함하도록 추가하고 #include winapifamily.h 매크로 WINAPI_FAMILY=WINAPI_PARTITION_APP를 설정합니다.

  3. 소스 코드 파일에서 필요에 따라 DLL 헤더 파일에 대해 #include 문을 추가합니다.