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

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

동적 라이브러리 만들기

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

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

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

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

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

# cat.h
#pragma once
extern "C" _declspec(dllexport) int sum(int a, int b);
로그인 후 복사
# 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++ 동적 라이브러리를 호출하는 두 가지 방법

#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

#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비트를 사용해야 합니다.

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으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!