Visual Studio win32 자습서에서 DLL 오류가 발생하는 경우 오늘의 자습서가 도움이 될 수 있습니다.
승인됨: Fortect
<울><리>
<리>
Visual Studio IDE를 사용하여 Microsoft C++( MSVC). 그런 다음 다른 응용 프로그램에서 C++ DLL을 사용하는 방법을 보여줍니다. DLL(UNIX 운영 체제에서 공유 라이브러리라고도 함)은 Windows 물질의 가장 유용한 단위입니다. 이 사람들을 사용하여 코드와 리소스를 추가로 확보하고 애플리케이션 영역을 줄일 수 있습니다. DLL을 사용하면 가족 응용 프로그램을 더 쉽게 유지 관리하고 확장할 수도 있습니다.
이 연습에서는 일부 수학 함수를 구현하는 DLL을 만듭니다. 그런 다음 응용 프로그램이 DLL 렌더링을 사용하는 이 콘솔을 만듭니다. 또한 Windows에서 DLL에 대해 사용하는 몇 가지 프로그래밍 방식과 규칙을 소개합니다.
<울>
Visual Studio에서 DLL 계획을 만듭니다.
판매된 변수를 DLL에 추가했습니다.
Visual Studio에서 Xbox 앱 프로젝트를 만듭니다.
승인됨: Fortect
Fortect은 세계에서 가장 인기 있고 효과적인 PC 수리 도구입니다. 수백만 명의 사람들이 시스템을 빠르고 원활하며 오류 없이 실행하도록 신뢰합니다. 간단한 사용자 인터페이스와 강력한 검색 엔진을 갖춘 Fortect은 시스템 불안정 및 보안 문제부터 메모리 관리 및 성능 병목 현상에 이르기까지 광범위한 Windows 문제를 빠르게 찾아 수정합니다.
콘솔 애플리케이션에서 제공된 DLL의 측면과 변수를 사용합니다.
종료된 애플리케이션을 실행합니다.
정적으로 연결된 전체 라이브러리와 마찬가지로 DLL은 요소, 기능 및 리소스를 이름별로 내보냅니다. 클라이언트 응용 프로그램은 개인 변수, 기능 및 리소스를 사용하기 위해 ID를 가져옵니다. 정적으로 연결된 라이브러리와 달리 Windows는 신뢰할 수 있는 앱의 가져오기 및 내보내기를 동시에 연결하는 대신 로드하거나 사용하는 동안 전체 DLL로 번들링합니다. Windows는 이러한 연결을 정의하기 위해 가장 중요한 표준 C ++ 컴파일의 일부일 필요는 없는 몇 가지 추가 정보가 필요합니다. MSVC 컴파일러는 이 추가 정보를 제공하려는 경우 C ++에 대한 일부 Microsoft 특정 확장을 구현합니다. 우리는 대부분이 확장을 만드는 방법을 설명합니다.
이 연습에서는 총 Visual Studio 솔루션 수를 만듭니다. 모든 DLL 및 Patron 응용 프로그램을 설계하고 있다는 것입니다. DLL은 규칙에 따라 C를 사용합니다. 각각의 플랫폼, 호출 규칙 및 역참조 규칙이 동일하면 다른 프로그래밍 언어로 작성된 애플리케이션으로 인식할 수 있습니다. 클라이언트에서 응용 프로그램은 Windows가 부팅 시 선택적으로 응용 프로그램을 대부분의 DLL에 연결하는 기본 단방향 링크를 사용합니다. 이 고유한 항목을 연결하면 응용 프로그램에서 정적으로 제한된 라이브러리의 함수와 마찬가지로 일반적으로 DLL에서 제공하는 함수를 호출할 수 있습니다.
이것은 몇 가지 기본적인 합병증을 다루지 않습니다. 코드는 다른 프로그래밍에 의한 유사한 C ++ 라이브러리의 사용을 보여주지 않습니다. 최신 리소스 전용 DLL을 공식화하는 방법 또는 로드 시간과 반대로 명시적 서비스 를 사용하려는 경우 방법을 보여주지 않습니다. MSVC와 Visual Studio는 이러한 작업을 거의 모두 수행할 수 있습니다. 링크
DLL에 대한 자세한 전략 및 정보는 Visual Studio에서 C/C++ DLL 생성 을 참조하십시오. 암시적 역참조 및 명시적 참조에 대한 자세한 내용을 보려면 사용할 구성 방법 결정 을 결정하십시오. 범위 프로그래밍 프로그램에서 사용 C 실행 규칙을 사용하여 생성하려면 실행 가능한 C 언어에서 사용하도록 C++ 함수 내보내기 를 참조하십시오. 다양한 .NET에서 사용할 DLL을 생성하는 방법에 대한 지식은 DLL을 참조하십시오 Visual Basic 응용 프로그램을 위한 함수 호출 .
요구 사항
<울>
<울>
Visual Studio IDE를 사용하여 기본 사항을 이해합니다. 이전에 Windows 데스크톱 앱을 관리한 적이 있다면 확실히 보충할 수 있습니다. 개요는 Visual Studio IDE 기능 개요 를 참조하십시오.
C ++ 언어에 대한 충분한 지식을 얻으십시오 – 참여하십시오. 너무 걱정하지 마십시오. 우리는 너무 복잡한 작업을 하고 있지 않습니다.
정확한 DLL 프로젝트 생성
이 작업에서 잠재 고객은 DLL에 대한 프로젝트를 만들고 특정 코드 하나를 개선하고 빌드합니다. 먼저 Visual Studio IDE에서 시작하고 가능한 경우 로그인합니다. 사용 중인 Visual Studio 릴리스에 따라 쉽게 사용자 지정할 수 있는 지침입니다. 페이지의 왼쪽 상단 모서리에 있는 명령에서 선택한 올바른 버전을 반드시 포함해야 합니다. 지금
수정은 이 DLL을 너무 극단적으로 설정하지 않습니다. 다음으로 DLL이 내보낼 작업을 선언하는 데 도움이 되는 헤더 파일을 만든 다음 해당 DLL에 함수 정의를 도입하여 더 유용하게 만듭니다.
<올>
함수에 대한 컴퓨터 파일 헤더를 공식화하려면 메뉴 모음에서 프로젝트> 새 항목 추가를 선택합니다.
새 항목 추가 대화 상자의 왼쪽 창에서 Visual C ++를 선택합니다. 메인 중간에서 헤더(file.h)를 선택합니다. 모든 현재 헤더 파일 이름으로 MathLibrary.h를 입력합니다.
일반적으로 다음 편집기 창에 표시될 수 있는 흰색 헤더 파일을 생성하려면 추가 옵션을 클릭합니다.
일종의 데이터베이스 헤더 내용을 다음 코드로 바꿉니다.
// MathLibrary.h - 수학 함수 선언을 포함합니다.#프라그마원스#ifdef MATHLIBRARY_EXPORTS#define MATHLIBRARY_API __declspec(dllexport)#또 다른#define MATHLIBRARY_API __declspec(dllimport)#끝나면// 피보나치 비율의 반복은 시퀀스 F를 설명합니다.// 여기서 F(n) {n = 0, a. ~ 할 것이다// {d = 1, b// {n> 1단계, F(n-2) + F(n-1)// 몇 가지 중요한 소개 값 a와 b.// .if .zone. 초기화된 .F(0). = .1, .F(1). 수단 .1,// 이 관계는 유명한 피보나치 모양을 생성합니다.//. 시퀀스: .1, .1, .2, .3 ,. 행, .8, .12, .21, .34, ....// 모든 피보나치 비율의 거의 모든 시퀀스를 초기화합니다.// 따라서 F(0)은 a, F(1) = b를 의미합니다.// 함수는 다른 함수보다 먼저 정의되어야 합니다.extern "C" MATHLIBRARY_API 빈 fibonacci_init( 부호 없는 상수 long much, unsigned 상수 확장 long, 생성 b);// 여기에 순서대로 값을 추가합니다.// 재물에 대해 true를 반환하므로 현재 값과 유효하지 않은 인덱스가 매우 잘 업데이트될 수 있습니다.// 오버플로, 현재 값과 데이터베이스를 변경하지 않은 상태로 둡니다.extern "C" MATHLIBRARY_API bool fibonacci_next();// 시퀀스 "C"의 계속 작업 값을 가져옵니다.extern MATHLIBRARY_API unsigned very long long fibonacci_current();// NS시퀀스의 현재 값을 포함하여 위치를 가져옵니다.extern "C" MATHLIBRARY_API 부호 없는 fibonacci_index();
이 헤더 파일은 두 개의 주어진 고유 값으로 일반화된 피보나치 체인을 공식화하는 몇 가지 함수를 선언합니다. fibonacci_init (1, 1)
정보를 요청하는 전화는 피보나치 수열의 익숙한 힘을 생성합니다.
주의 – 정확한 파일의 맨 위에 있는 전처리기 지침. DLL 프로젝트를 위한 새로운 웹 프로젝트 디자인은 특정 매크로 전처리기가 있는 PROJECTNAME_EXPORTS를 추가합니다. 예를 들어 위의 Visual Studio는 개인이 MathLibrary DLL 프로젝트를 빌드할 때 MATHLIBRARY_EXPORTS를 설정합니다.
MATHLIBRARY_EXPORTS 매크로가 거의 확실하게 정의된 경우 MATHLIBRARY_API 매크로 __declspec(dllexport)
은 기본적으로 함수 선언을 위한 수정자를 남깁니다. 이 수정자는 컴파일러와 Marketplace에 다른 응용 프로그램에서 사용하는 특정 DLL의 다른 함수나 변수를 내보내도록 지시합니다. MATHLIBRARY_EXPORTS가 정의되지 않은 경우(예: 모든 헤더 파일이 동일한 애플리케이션에 포함되는 경향이 있는 경우) MATHLIBRARY_API는 가장 중요한 __declpe 수정자를 선언 sc(dllimport)
에 적용합니다. 이 수정자는 올바르게 사용될 때 함수 또는 단순히 변수의 이동을 최적화합니다. 자세한 내용은 dllexport, dllimport 를 참조하십시오.
DLL 구현을 생성하려면
포인트가 작동하는지 확인하려면 전용 동적 링크 라이브러리를 컴파일하십시오. 클럽 메뉴에서 빌드> 솔루션 빌드를 선택하도록 컴파일합니다. DLL 및 관련 컴파일러 생성은 실제로 솔루션 폴더의 Directly debug라는 폴더에 배치됩니다. 릴리스를 릴리스할 때 결과는 릴리스라는 폴더에 저장됩니다. 끝 부분은 다음과 같아야 합니다.
축하합니다. Visual Studio로 DLL을 즐겁게 만드셨습니다! 다음으로, 특정 DLL이 내보낸 각 용도를 사용할 클라이언트 응용 프로그램을 작성해야 합니다.
DLL을 사용하여 클라이언트 응용 프로그램 만들기
DLL을 준비할 때 클라이언트 프로그램에서 DLL을 사용하는 방법을 염두에 두십시오. 액세스 작업과 함께하십시오
지금 이 간단한 다운로드로 컴퓨터 성능을 높이십시오. 년