ctypes

    2熱度

    1回答

    例如,下面是用指針來返回一個簡單的C函數值: void add(double x, double y, double *r) { *r = x + y; } 我想打電話給每一個元素add()功能在兩個數組中,並通過numba @jit函數收集結果。 第一編譯的C代碼: !gcc -c -fpic func.c !gcc -shared -o func.so func.o 而

    1熱度

    2回答

    C函數(以下代碼中的image_data變量)返回指向類型爲POINTER(c_ubyte)的緩衝區的指針。我希望這些數據由Python管理,因此我想將它複製到bytearray。這裏的函數調用 image_data = stb_image.stbi_load(filename_cstr, byref(width), byref(height), byref(num_cha

    1熱度

    1回答

    我在Lazarus中有一個非常小的庫,我無法在Mac上將它與ctypes一起使用。我真的不明白自己做錯了什麼,我希望有人能指出我正確的方向。 這是我在拉撒路的代碼。在Linux機器(Ubuntu VM)上編譯時,一切正常。我可以創建一個Linux .so文件,並使用ctypes,我可以調用共享庫。 library project1; {$mode delphi}{$H+} {$IFDEF

    1熱度

    1回答

    我最近繼承了一個項目,在該項目中我們反序列化了一個由我無法更改的系統寫出的一串數據(希望他們使用標準串行器,但我無法更改此項)。在大多數情況下,我能夠使用ctypes來表示結構並將數據正確地轉換爲Python,但是我們有一些情況下底層的數據結構是一團糟(再次,無論我嘗試過多少次都無法改變)。當C結構定義如下2例正在推動我堅果試圖找到一種有效的方式是: 簡單的例子: struct b{ i

    0熱度

    1回答

    C++接口: 無符號長_stdcall NAPI_JsonCommand(字符* szCommand,無符號長* pulRet,字符* PBUF,整數nLen,無符號長* pulDevCode); 回調函數的定義: 的typedef長(_stdcall fMsgCallback)(INT NMSG,空隙 pUserData,字符* PBUF,INT nLen,INT nParam); 蟒(3.5.

    0熱度

    1回答

    ctypes可以用指針算術嗎? 首先,讓我告訴你我想用C做 #include <stdio.h> struct Foo { short *Bar; short *end_Bar; }; int main() { short tab[3] = {1,2,3}; struct Foo foo; foo.Bar = tab; foo.end_Bar

    0熱度

    1回答

    我需要編寫一個Python程序來調用某些函數,並從第三方共享庫中獲取JSON響應(一個unicode字符串)。據推測該庫是用C++編寫的。圖書館有含以下一個頭文件: #include <string> #include <ExportLib.h> // some code ignored here typedef std::string UString; using namespace s

    1熱度

    1回答

    我正在通過ctypes將C庫包裝到Python中。此刻,我堅持一行或多行參數。這裏的C代碼: void* gVimbaHandleFake = (void*)1; err = VmbFeatureBoolGet(gVimbaHandleFake, "GeVTLIsPresent", &isGigE); 問題是這個奇怪的void指針。一般來說,我知道什麼是無效指針,但這個似乎是「特殊的」。如果

    1熱度

    1回答

    假設我有一個外部的庫如下功能: void foo(const unsigned char *buf, const int len); 我希望能夠從我的Python代碼調用這個函數,使用​​,未做緩衝區的副本。緩衝區可能相當大,因此避免複製具有明顯的性能優勢。爲了方便我的代碼的使用者,我希望能夠以bytes或bytearray的形式提供此緩衝區。 目前我在argtypes聲明中聲明buf爲cty

    1熱度

    2回答

    我想知道如果有人能告訴我是否有更好/更快的方法從我的C程序中讀取數據,輸出兩個大小爲的文件列表。我正在使用​​來調用C程序。 我在下面展示的循環通過迭代多次掃描來工作。對於每次掃描,生成兩個列表(msX, msY)。通過使用列表理解循環提取c_float數據。將mzP和mzI獲得的c_float_Array轉換爲msX和msY有沒有更好/更快的方法? for scan in xrange(nSca