🧼C, C++/라이브러리 강좌(옛날자료)
dll 만들기 - Python 에서 C언어 사용 - 1
안녕하세요!
오늘은 엄청 간단하고 쉽게 c언어의 함수를 python에서 실행할수있도록도와주는
동적연결라이브러리(다이내믹 라이브러리) 를 엄청 쉽게 만들건데요
IDE는 C언어의 Devcpp와 Python의 PythonIdle을(를) 사용했습니다.
그럼 시작하겠습니다...!
먼저 프로젝트를 생성해줍니다!
그다음 [ Basic ] -> [ DLL ] 을 클릭해주세요! 클릭!
이름은 마음대로해주세요!!
이제 헤더파일에다가 이렇게적어줍니다!
더보기
" dll.h "
#define DLLS __declspec(dllexport)
cpp파일과 h파일에 원래있던 내용들 전부 없애주고 이렇게 적어줍니다!
더보기
" dllmain.cpp "
#include "dll.h"
extern "C"{
DLLS int sum(int a,int b,int c){
int d = a+b+(100*c);
return d;
}
}
이렇게 작성해주셨다면
사진과같이 눌러주세요!
더보기
" .dll파일의 위치찾기 "
이제 컴파일되고 나온 .dll파일의 위치는 어디있을까요?
바로 프로젝트를 생성한 폴더와 같은경로에있습니다!
자그러면 이제 파이썬으로 넘어가봅시다!
더보기
" dll.py "
import ctypes
#mydll = ctypes.WinDLL('DLL파일의경로지정')
mydll = ctypes.WinDLL('C:\\Users\\3123\\바탕 화면\\PYTHON\\Decode.dll')
cu = mydll['sum']
cu.restype = ctypes.c_int
print(cu(1,2,3))
결과값:
저가 파이썬에서 인자로 1과 2와 3을 넘겨줬죠?
다시 C언어로 거슬러올라가 맞는지확인하겠습니다
[ C언어코드 확인 ]
int sum(int a,int b,int c){
int d = a+b+(100*c);
return d;
}
a가 1 ,b가 2 ,c가 3 ---> 1+2+(100*3)=303 !!
정상적으로 잘나왔네요!
그러면 파이썬에서 input함수와 split함수를 이용해 C언어에서 만든 sum함수로 계산하여
그 결과값을 리스트자료형에 대입해보겠습니다!
더보기
[[[ 응용예제 ]]]
[[ dll.py ]]
import ctypes
#mydll = ctypes.WinDLL('DLL파일의경로지정')
mydll = ctypes.WinDLL('C:\\Users\\3123\\바탕 화면\\PYTHON\\Decode.dll')
cu = mydll['sum']
cu.restype = ctypes.c_int
a,b,c = input().split(':')
a = int(a)
b = int(b)
c = int(c)
lst = []
a = cu(a,a,a)
lst.append(a)
b = cu(b,b,b)
lst.append(b)
c = cu(c,c,c)
lst.append(c)
print(lst)
결과값:
다음DLL강좌는 문자열의 리턴값전달방법과
인자값전달방법에 대해 포스팅하겠습니다
감사합니다!
다음글
'🧼C, C++ > 라이브러리 강좌(옛날자료)' 카테고리의 다른 글
멀티쓰레딩 <C++ thread> (0) | 2020.10.08 |
---|---|
dll 만들기 - Python 에서 C언어 사용 - 2 (0) | 2020.10.05 |
댓글