VS2010 동적 링크 라이브러리 만들기 및 호출
2. 항목 유형 창에서 Visual C++ 아래의 Win32를 선택합니다.
3. 템플릿 창에서 Win32 콘솔 응용 프로그램을 선택합니다.
4. MathFuncsDll과 같은 항목의 이름을 선택하고 이름 필드에 입력합니다.DynamicLibrary와 같은 솔루션 이름을 선택하고 솔루션 이름 필드에 입력합니다.
5. 확인을 클릭하여 Win32 응용 프로그램 마법사를 시작합니다.Win32 애플리케이션 마법사 대화 상자의 개요 페이지에서 다음을 클릭합니다.
6. Win32 응용 프로그램 마법사의 응용 프로그램 설정 페이지에서 응용 프로그램 유형 아래의 DLL(사용 가능한 경우)을 선택하거나 콘솔 응용 프로그램(DLL을 사용할 수 없는 경우)을 선택합니다.일부 Visual Studio 버전에서는 마법사를 사용하여 DLL 프로젝트를 만들 수 없습니다.나중에 이를 변경하여 프로젝트를 DLL로 컴파일할 수 있습니다.
7. Win32 응용 프로그램 마법사의 응용 프로그램 설정 페이지에서 추가 옵션 아래의 빈 항목을 선택합니다.
8. 완료를 클릭하여 프로젝트를 만듭니다.
동적 링크 라이브러리에 클래스 1 추가새 클래스의 헤더 파일을 만들려면 '항목' 메뉴에서 '새 항목 추가...' 를 선택하십시오.새 항목 추가 대화 상자가 나타납니다.[범주] 창에서 [Visual C++] 아래의 [코드]를 선택합니다.템플릿 창에서 헤더 파일(.h)을 선택합니다.헤더 파일의 이름(예: MathFuncsDll)을 선택합니다.h, 추가 를 클릭합니다.빈 파일이 표시됩니다.
2. "MyMathFuncs"라는 간단한 클래스를 추가하여 플러스, 마이너스, 곱하기, 나누기 등 일반적인 산술 연산을 수행합니다.코드는 다음과 유사해야 합니다.
// MathFuncsDll.h
namespace MathFuncs
{
class MyMathFuncs
{
public:
// Returns a + b
static __declspec(dllexport) double Add(double a, double b);
// Returns a - b
static __declspec(dllexport) double Subtract(double a, double b);
// Returns a * b
static __declspec(dllexport) double Multiply(double a, double b);
// Returns a / b
// Throws DivideByZeroException if b is 0
static __declspec(dllexport) double Divide(double a, double b);
};
}
3. 이 코드 방법 설명의 에 주의하십시오declspec (dllexport) 수식자.이러한 수정자를 사용하여 DLL은 다른 애플리케이션에서 사용할 수 있도록 이 메서드를 내보낼 수 있습니다.더 많은 정보는 dllexport, dllimport를 참조하십시오.
4. 새 클래스에 대한 원본 파일을 만들려면 [프로젝트] 메뉴에서 [새 항목 추가...]를 선택합니다.새 항목 추가 대화 상자가 나타납니다.[범주] 창에서 [Visual C++] 아래의 [코드]를 선택합니다.템플릿 창에서 C++ 파일(.cpp)을 선택합니다.원본 파일의 이름(예: MathFuncsDll)을 선택합니다.cpp 를 클릭하고 추가 를 클릭합니다.빈 파일이 표시됩니다.
5. 소스 파일에서 MyMathFuncs 기능을 수행합니다.코드는 다음과 유사해야 합니다.
// MathFuncsDll.cpp
// compile with: /EHsc /LD
#include "MathFuncsDll.h"
#include <stdexcept>
using namespace std;
namespace MathFuncs
{
double MyMathFuncs::Add(double a, double b)
{
return a + b;
}
double MyMathFuncs::Subtract(double a, double b)
{
return a - b;
}
double MyMathFuncs::Multiply(double a, double b)
{
return a * b;
}
double MyMathFuncs::Divide(double a, double b)
{
if (b == 0)
{
throw new invalid_argument("b cannot be zero!");
}
return a / b;
}
}
6. 프로젝트를 DLL로 만들려면 [프로젝트] 메뉴에서 MathFuncsDll [속성...]을 선택합니다.왼쪽 창에서 구성 속성 아래의 일반 을 선택합니다.오른쪽 창에서 구성 유형을 동적 라이브러리(.dll)로 변경합니다.확인을 클릭하여 변경 내용을 저장합니다.
명령줄에서 항목을 생성하는 경우/LD 컴파일러 옵션을 사용하여 출력 파일을 DLL로 지정해야 합니다.자세한 내용은/MD,/MT,/LD 를 참조하십시오. 7.[생성] 메뉴에서 [솔루션 생성]을 선택하여 동적 링크 라이브러리를 컴파일합니다.이렇게 하면 다른 프로그램에서 사용할 수 있는 DLL이 생성됩니다.DLL에 대한 자세한 내용은 DLL을 참조하십시오.
동적 링크 라이브러리를 인용하는 프로그램 만들기 1.새로 만든 동적 링크 라이브러리를 인용하고 사용할 프로그램을 만들려면 '파일' 메뉴에서 '새로 만들기' 를 선택한 다음 '항목...' 을 선택하십시오.
2. 항목 유형 창에서 Visual C++ 아래의 Win32를 선택합니다.
3. 템플릿 창에서 Win32 콘솔 응용 프로그램을 선택합니다.
4. 프로젝트의 이름(예: MyExecRefsDll)을 선택하고 이름 필드에 입력합니다.솔루션 옆의 드롭다운 목록에서 솔루션 추가 를 선택합니다.이렇게 하면 동적 링크 라이브러리가 속한 동일한 솔루션에 새 항목이 추가됩니다.
5. 확인을 클릭하여 Win32 응용 프로그램 마법사를 시작합니다.Win32 애플리케이션 마법사 대화 상자의 개요 페이지에서 다음을 클릭합니다.
6. Win32 응용 프로그램 마법사의 응용 프로그램 설정 페이지에서 응용 프로그램 유형 아래의 콘솔 응용 프로그램을 선택합니다.
7. "Win32 응용 프로그램 마법사"의 "응용 프로그램 설정"페이지에서 "추가 옵션"아래의 "사전 편집 헤더"콤보 상자를 지웁니다.
8. 완료를 눌러 프로젝트를 만듭니다.
콘솔 응용 프로그램에서 클래스 라이브러리 기능을 사용합니다.새 콘솔 응용 프로그램을 만들면 빈 프로그램이 만들어집니다.원본 파일의 이름은 앞에서 선택한 항목과 같습니다.이 예에서는 이름이 "MyExecRefsDll.cpp"입니다.
2. 동적 링크 라이브러리에서 만든 산술 루틴을 사용하려면 해당 라이브러리를 참조해야 합니다.이 작업을 수행하려면 솔루션 자원 관리자에서 MyExecRefsDll 프로젝트를 선택한 다음 '프로젝트' 메뉴에서 '인용...' 을 선택하십시오."속성 페이지"대화상자에서 "일반 속성"노드를 펼치고 "프레임워크와 인용"을 선택한 다음 "새 인용 추가..."를 선택하십시오.버튼을 누릅니다.참조대화상자에 대한 더 많은 정보는 "
3. 참조 추가 대화 상자가 표시됩니다.이 대화 상자에는 참조할 수 있는 모든 라이브러리가 나열됩니다.프로젝트 탭에는 현재 솔루션에 포함된 모든 항목과 라이브러리가 나열됩니다.프로젝트 탭에서 MathFuncsDll을 선택합니다.그런 다음 확인을 클릭합니다.
4. 동적 링크 라이브러리의 헤더 파일을 인용하려면 디렉터리를 포함하는 경로를 수정해야 한다.이렇게 하려면 "속성 페이지"대화상자에서 "속성 설정"노드를 펼친 다음 "C/C++"노드를 펼치고 "일반"을 선택하십시오.포함 디렉토리 첨부 옆에 MathFuncsDll을 입력합니다.h 헤더 파일이 있는 위치의 경로입니다.
5. 실행 가능한 파일은 실행할 때만 동적 링크 라이브러리를 불러옵니다.시스템에서 MathFuncsDll.dll을 찾는 위치를 알려야 합니다.PATH 환경 변수를 사용하여 이 작업을 수행할 수 있습니다.이렇게 하려면 "속성 페이지"대화상자에서 "속성 설정"노드를 펼치고 "디버깅"을 선택하십시오.환경 옆에 PATH=
Visual Studio 대신 명령줄에서 실행 파일을 실행하려면 다음과 같이 명령 프롬프트에서 PATH 환경 변수를 수동으로 업데이트해야 합니다. set PATH=%PATH%;MathFuncsDll.dll 파일의 경로 >, 여기서
// MyExecRefsDll.cpp
// compile with: /EHsc /link MathFuncsDll.lib
#include <iostream>
#include "MathFuncsDll.h"
using namespace std;
int main()
{
double a = 7.4;
int b = 99;
cout << "a + b = " <<
MathFuncs::MyMathFuncs::Add(a, b) << endl;
cout << "a - b = " <<
MathFuncs::MyMathFuncs::Subtract(a, b) << endl;
cout << "a * b = " <<
MathFuncs::MyMathFuncs::Multiply(a, b) << endl;
cout << "a / b = " <<
MathFuncs::MyMathFuncs::Divide(a, b) << endl;
return 0;
}
7. [생성] 메뉴에서 [솔루션 생성]을 선택하여 실행 파일을 생성합니다.
애플리케이션 실행 1.기본 항목으로 MyExecRefsDll을 선택해야 합니다."해결 방안 자원 관리자"에서 MyExecRefsDll을 선택한 다음 "프로젝트"메뉴에서 "시작 프로젝트로 설정"을 선택하십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Pytest 테스트 프레임워크 기본 사용 방법 상세 정보pytest 소개 2. 매개 변수화를 지원하여 테스트할 테스트 용례를 세밀하게 제어할 수 있다. 3. 간단한 단원 테스트와 복잡한 기능 테스트를 지원할 수 있고selenium/appnium 등 자동화 테스트, 인터페...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.