> 백엔드 개발 > 파이썬 튜토리얼 > C++에서 동적 라이브러리를 호출하는 두 가지 방법과 Python에서 C++ 동적 라이브러리를 호출하는 두 가지 방법

C++에서 동적 라이브러리를 호출하는 두 가지 방법과 Python에서 C++ 동적 라이브러리를 호출하는 두 가지 방법

WBOY
풀어 주다: 2023-04-08 12:45:01
앞으로
3544명이 탐색했습니다.

동적 라이브러리 만들기

동적 라이브러리는 프로그램 실행 시 로드되는 라이브러리 파일로, 프로그램 자체의 크기를 차지하지 않습니다.

동적 라이브러리 프로젝트 선택:

C++에서 동적 라이브러리를 호출하는 두 가지 방법과 Python에서 C++ 동적 라이브러리를 호출하는 두 가지 방법

새 .h 및 .cpp 파일 만들기:

C++에서 동적 라이브러리를 호출하는 두 가지 방법과 Python에서 C++ 동적 라이브러리를 호출하는 두 가지 방법

1

2

3

# cat.h

#pragma once

extern "C" _declspec(dllexport) int sum(int a, int b);

로그인 후 복사

1

2

3

4

5

6

# cat.cpp

#include "pch.h"

#include "cat.h"

extern "C" _declspec(dllexport) int sum(int a, int b) {

return a + b;

}

로그인 후 복사

동적 라이브러리 릴리스 릴리스 버전을 선택합니다. 이 예에서는 ×64비트를 사용합니다.

C++ 동적 라이브러리 가져오기 방법 1

C++에서 동적 라이브러리를 호출하는 두 가지 방법과 Python에서 C++ 동적 라이브러리를 호출하는 두 가지 방법

새 빈 C++ 프로젝트를 만들고 동적 라이브러리 프로젝트의 .lib 및 .dll 파일을 현재 프로젝트에 복사합니다.

C++에서 동적 라이브러리를 호출하는 두 가지 방법과 Python에서 C++ 동적 라이브러리를 호출하는 두 가지 방법

C++ 프로젝트에서 다음을 추가합니다. 동적 라이브러리 헤더 파일은 현재 프로젝트에 복사할 필요가 없으며 기존 항목을 추가하기만 하면 됩니다. 여기서는 논리적으로 도입하기만 하면 되지만 #include 시에는 절대 및 상대 모두 .h 파일 경로를 사용해야 합니다. 경로가 허용됩니다.

C++에서 동적 라이브러리를 호출하는 두 가지 방법과 Python에서 C++ 동적 라이브러리를 호출하는 두 가지 방법

1

2

3

4

5

6

7

8

#include

#include "../../CATDLL/CATDLL/cat.h"

using namespace std;

#pragma comment(lib, "CATDLL.lib")

int main() {

cout << sum(1, 2) << endl;

return 0;

}

로그인 후 복사
  • h 헤더 파일: dll에서 선언되고 출력되는 데이터 구조, 클래스, 함수 및 기타 정보와 같은 정보가 포함됩니다.
  • lib 라이브러리 파일: DLL을 호출하는 애플리케이션 실행 파일에는 호출되는 함수 코드가 아니라 호출되는 프로젝트의 메모리 주소가 저장됩니다. DLL에서.
  • dll 동적 라이브러리: 실제 콘텐츠가 포함되어 있습니다. 게시할 때 동일한 디렉터리에 .exe 파일과 .dll 파일만 필요합니다.

는 Project-Properties-Linker-Input-Additional에서도 구성할 수 있습니다. 종속성:

C++에서 동적 라이브러리를 호출하는 두 가지 방법과 Python에서 C++ 동적 라이브러리를 호출하는 두 가지 방법

생략 가능: #pragma comment(lib, "CATDLL.lib")

C++ 가져오기 동적 라이브러리 방법 2

1

2

3

4

5

6

7

8

9

10

11

#include

#include

using namespace std;

typedef int (*PSUM)(int, int);

int main() {

HMODULE hMoudle = LoadLibrary(TEXT("CATDLL.dll"));

PSUM psum = (PSUM)GetProcAddress(hMoudle, "sum");

cout << psum(4, 5) << endl;

FreeLibrary(hMoudle);

return 0;

}

로그인 후 복사

Python은 C++ 동적 라이브러리를 가져옵니다

C++ dll은 64비트이므로 Python도 64비트를 사용해야 합니다.

1

2

3

4

5

6

import os

from ctypes import *

os.chdir("D:Cat课件CAT_CODINGC++项目开发MFC进阶和动态库注入辅助PYTEST")

dll = cdll.LoadLibrary("CATDLL.dll")

ret = dll.sum(1, 2)

print(ret)

로그인 후 복사

이렇게 하면 일반적으로 사용되는 많은 함수를 C++를 사용하여 동적 라이브러리로 만들 수 있으며 C++ 또는 Python과 같은 다른 언어로 호출할 수 있습니다.

위 내용은 C++에서 동적 라이브러리를 호출하는 두 가지 방법과 Python에서 C++ 동적 라이브러리를 호출하는 두 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿