C與Python互動ctype方式記錄

2021-10-10 06:22:28 字數 1029 閱讀 8903

python中封裝了ctype可以用來c與python之間的互動。

在vs中選擇動態庫編譯可以將函式編譯成動態庫的形式。下面條件編譯是用來在c++中編譯c的函式,並且匯出成動態庫的。

#ifdef __cplusplus

#define xext extern "c"

#else

#define xext

#endif

#ifdef _win32

//包含win32和win64

#define xlib xext __declspec(dllexport)

#else

#define xlib xext

#endif

下面是宣告的乙個函式:

xlib bool initdevice

(int width,

int height)

;

下面是實現:

bool initdevice

(int width,

int height)

注意,如果安裝的python是32位的,那麼通過vs生成的動態庫也必須是32位的否則會報下面錯誤。

oserror: [winerror 193] %1 不是有效的 win32 應用程式。

在window中用python載入動態連線庫的時候可以不新增字尾.dll,但是python3.8之後,必須新增動態庫的目錄,否則會報錯not find module。。。。。。

print

("in python test ctypes irrlicht"

)from ctypes import *

irr =

cdll

("./dll2"

)irr.

initdevice

(800

,400

)

python與cad互動 python與C 互動

python和c 能進行有效的互動,c 呼叫python的一些小用法 寫了乙個python指令碼匯入發生異常,可能是編碼問題 如存在中文 python預設的是ascii 可加上 usr bin python coding utf 8 參見 定義類c資料結構 class point structure...

使用ctype在python中呼叫c

之前在python中呼叫c 是通過命令列呼叫的,引數傳遞是使用檔案io的形式,所以會特別慢 現在用ctypes,引數傳遞傳的只是記憶體中的指標,這就很舒服 現在來總結下如何使用cytpes在python中呼叫c ubuntu系統下 首先寫乙個test.c的原始碼 int add int a,int ...

Python與C 資料互動編碼問題

在寫後台的時候遇到乙個需求 我的python後台伺服器需要建立乙個服務端socket跟c 客戶端進行一些資料的互動 出現問題 python socket.recv 1024 接收到的資料是格式不正確的。比如客戶端傳過來的資料格式是 4,10080 服務端接收到的資料格式是 4,1 0 0 8 0 分...