dll裡面的c函式如何向python返回陣列

2021-03-03 20:50:54 字數 1881 閱讀 9461

1樓:猶志

是想採用python呼叫c寫成的dll呢?

還是想將c寫的dll封裝成python模組呢??

如果是前者可以使用ctypes,如果是後者可以使用swig或者boost進行封裝

python 呼叫c++程式, c++程式如何返回陣列給python

2樓:大話殘劍

c/c++不能直bai接返回一個數du組。這是由於在c/c++中,陣列不zhi是一dao種型別,因此不專能被直接返回。一般有

3樓:匿名使用者

你說的呼叫是指什麼,單純拿標準輸出的結果?

那你得吧資料以一些格式當成字串輸出,然後再用python解析字串還原成你需要的格式。

請問python中如何傳遞一個字串給c程式dll中c函式,同時c函式如何返回一個字串給python

4樓:匿名使用者

用ctypes,

>>> from ctypes import *

>>> libc=cdll.msvcrt

>>> libc.printf("hello %s\n","world")

hello world

12>>>

>>> p = create_string_buffer("hello", 30)

>>> n=libc.sprintf(p,"hello %s\n","world")

>>> n

12>>> print p

>>> dir(p)

['__class__', '__ctypes_from_outparam__', '__delattr__', '__delitem__', '__delsl

ice__', '__dict__', '__doc__', '__format__', '__getattribute__', '__getitem__',

'__getslice__', '__hash__', '__init__', '__len__', '__module__', '__new__', '__r

educe__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__setslice

__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__',

'_b_base_', '_b_needsfree_', '_length_', '_objects', '_type_', 'raw', 'value']

>>> p.value

'hello world\n'

>>>

python定義函式最後返回值是一個陣列,請問呼叫函式的時候怎麼將結果取出?

5樓:

使用返回值的方法有兩種:

可以直接把呼叫的函式作為變數使用

可以用調專用函式給一個變數賦值

第一種屬情況見如下例子:

l = [1,2,3,4,5]

def add_element(list, element):

return list

print add_element(l, 6)# >>> [1,2,3,4,5,6]

print add_element(l, 6)[5]# >>> 6

第二種情況:

l1 = add_element(l, 6)print l1

# >>> [1,2,3,4,5,6]

print l1[5]

# >>> 6

注意: 以上例子都是應用於python 2.x

C中dll該如何宣告及呼叫,C 中如何呼叫DLL檔案?

dllimport twain 32.dll entrypoint 1 private static extern twrc dspxfer in,out twidentity origin,in twidentity dest,twdg dg,twdat dat,twmsg msg,in,out ...

dll是什麼軟體編寫的裡面的內容是什麼

樓上真牛,從 複製來的,不過挺具體的,是微軟的 dll是dynamic link library的縮寫,意為動態連結庫。dll檔案一般被存放在c windowssystem目錄下。dll是一個包含可由多個程式同時使用的 和資料的庫。在windows中,許多應用程式並不是一個完整的可執行檔案,它們被分...

c 裡面return的用法,c 裡面的return到底有什麼用?什麼時候需要用到

具體的 舉例說明吧 比較兩個數的大小,返回1,代表x y,返回0代表兩個數相等,返回 1,代表xy if x y if xy?1 1 int main void 現在來說return return 有兩種 1,函式結束不滿足當前的值return,2,函式執行晚可以用return 比如 void ad...