동적 라이브러리는 프로그램 실행 시 로드되는 라이브러리 파일로, 프로그램 자체의 크기를 차지하지 않습니다.
동적 라이브러리 프로젝트 선택:
새 .h 및 .cpp 파일 만들기:
# 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++ 프로젝트를 만들고 동적 라이브러리 프로젝트의 .lib 및 .dll 파일을 현재 프로젝트에 복사합니다.
C++ 프로젝트에서 다음을 추가합니다. 동적 라이브러리 헤더 파일은 현재 프로젝트에 복사할 필요가 없으며 기존 항목을 추가하기만 하면 됩니다. 여기서는 논리적으로 도입하기만 하면 되지만 #include 시에는 절대 및 상대 모두 .h 파일 경로를 사용해야 합니다. 경로가 허용됩니다.
#include #include "../../CATDLL/CATDLL/cat.h" using namespace std; #pragma comment(lib, "CATDLL.lib") int main() { cout << sum(1, 2) << endl; return 0; }
는 Project-Properties-Linker-Input-Additional에서도 구성할 수 있습니다. 종속성:
생략 가능: #pragma comment(lib, "CATDLL.lib")
#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; }
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!