반응형
문자열 전달 하기
#include <stdio.h>
__declspec(dllexport) void print_message(const char* message) {
printf("Received message: %s\n", message);
}
import ctypes
# DLL 로드
mydll = ctypes.WinDLL(r"C:\경로\mydll.dll")
# 함수 원형 지정
mydll.print_message.argtypes = [ctypes.c_char_p]
mydll.print_message.restype = None # 반환값 없음
# 문자열 전달
msg = b"Hello from Python!" # 반드시 b'' 형태로 바이트 문자열 사용
mydll.print_message(msg)
#include <stdio.h>
#include <string.h>
__declspec(dllexport) void modify_message(char* message) {
strcat(message, " (Modified in C)");
}
# 버퍼 생성 (수정 가능한 문자열)
buffer = ctypes.create_string_buffer(b"Hello from Python!", 100) # 최대 100바이트
# 함수 원형 설정
mydll.modify_message.argtypes = [ctypes.c_char_p]
mydll.modify_message.restype = None
# 함수 호출
mydll.modify_message(buffer)
# 결과 출력
print(buffer.value.decode("utf-8")) # "Hello from Python! (Modified in C)"
'C, C++' 카테고리의 다른 글
C/C++ dll 파이썬에서 호출 하기 (0) | 2025.02.27 |
---|---|
가끔 사용하는 코딩 #1 (0) | 2024.10.10 |
코딩 이야기 #1 (0) | 2020.07.22 |
댓글