免费国产网站_秋霞午夜一区二区三区视频_99热在线看_日韩精品久久一区二区_午夜看一级毛片_天天鲁在视频在线观看

  • 您的位置:首頁 > 新聞動態 > 技術文章

    PYTHON調用C++DLL的參數傳遞方法

    2019/9/16??????點擊:

    1. PYTHON與C++參數變量的比較

    2. 準備一個C++ DLL的測試工程文件,并編譯產生DLL文件,代碼如下:
    C++文件(cpp):(注意在函數聲明上加上extern "C" 的修飾)

    #include “testdll.h”
    extern "C" {
        __declspec(dllexport) int Double(int x);
        __declspec(dllexport) float floatAdd(float a,float b); 
        __declspec(dllexport) void HelloWorld(char * str); 
        __declspec(dllexport) void Ints(int * arr,int n); 
    }
    int Double(int x){
        return x*2;
    }
    float floatAdd(float a,float b) {
        return a+b;
    }
    void HelloWorld(char * str){
        puts(str);
    }

    在python腳本中使用ctypes加載dll :
     from ctypes import *
     dll = cdll.LoadLibrary('DLL/dlltest.dll')
    請注意:


    1.如果不加任何修飾,默認傳入參數為int,傳出參數也為int 

    2.對于int以外的類型(如float),需要聲明python函數的傳入參數類型,傳出參數類型 fun.argtypes=[c_float,c_float]  #定義傳參類型
     fun.restype=c_float             #定義返回值類型
     a=fun(c_float(1.4),c_float(1.2))
     print(type(a))
     print(a)
     輸出:2.5999999046325684 

    3.對于字符串char* ,在聲明傳入參數類型時,需要聲明為字符指針,然后分配一塊char數組,后把這個數組強制轉換為字符指針 并且,在把python腳本中的數據結構導入c++中時,需要把str轉換為bytes或者bytesarray類型,并且進行迭代器分解
     hello=dll.HelloWorld
     hello.argtypes=[POINTER(c_char)]    #傳入參數為字符指針
     STR=(c_char * 100)(*bytes("WiseGlove數據手套",'utf-8')) #把一組100個的字符定義為STR
     cast(STR, POINTER(c_char))
     hello(STR)
     輸出:WiseGlove數據手套 

    4.對于其他數據類型的數組,(例如int*),操作相似: Ints=dll.Ints
     Ints.argtypes=[POINTER(c_int),c_int]
     INT=(c_int * 100)(*[1,2,3]) #把列表傳入變長參數args*中
     cast(INT, POINTER(c_int))
     Ints(INT,c_int(3))
     輸出:1 2 3  

    5.對于返回值為數組的情況,可以直接使用索引去訪問,但是下標操作[]不是從迭代器中取對象,而是地址偏移: def fillHoleCpp(im):
         dll = cdll.LoadLibrary("bfs.dll")
         bfs=dll.bfs
         bfs.argtypes = [POINTER(c_int),c_int]
         bfs.restype = POINTER(c_int)
         a = np.asarray(range(16), dtype=np.int32).reshape([4, 4])
         if not a.flags['C_CONTIGUOUS']:
             a = np.ascontiguous(a, dtype=a.dtype)  # 如果不是C連續的內存,必須強制轉換
         IMG = cast(a.ctypes.data, POINTER(c_int))  # 轉換為ctypes,這里轉換后的可以直接利用cty
         cast(IMG, POINTER(c_int))
         length=a.size
         ans=bfs(IMG,c_int(length))
         print(type(ans))
         for i in range(0,length):
             print(ans[i],end=' ')
    怎么樣, 小伙伴們學會了Python語言調用C++dll的方法了嗎? 使用這個方法,可以調用WONGLOVE數據手套的sdk開發庫獲得數據手套的角度數據哦~~



    主站蜘蛛池模板: 天天操天天干天天插_国产免费99_日日射夜夜操_成人午夜视频观看免费高清第1季_国产精品一色哟哟哟_91欧美视频在线观看 | 樱花yy私人影院亚洲_91.官网_少妇无码AV无码专区在线_男女啪动最猛动态图_九九久久免费_亚洲欧美另类视频 | 国产福利永久不卡在线观看_国产精品福利av_黄色国产区_精品在线视频免费_天天做天天爱天天爽_成人开心网 | 久久人人草_少妇人妻av毛片在线看_裸身美女无遮挡永久免费视频_一性一交一口添一摸视频_久久国产精品视频一区_a视频在线观看 | 成年女人免费v片_国产精品免费高清_日本高清一区二区三区四区_第一福利社区1024_中国黄色软件_国产视频久久久 | 国产av丝袜一区二区三区_铁牛tv萌白酱jk喷水视频_jizz老师喷水_久久久久久久久久网站_亚洲一区二区三区99_91免费在线视频 | 久在线播放_课中坏事在线看_欧美熟妇bbbbbb搡bbbb_黄色一级性片_亚洲国产精品二区_欧美一区二区三区人妻熟妇 国产精品成人观看视频国产奇米_欧美日韩中文视频_五月丁香五月伦理_亚洲国产精品成人综合久久久久久久_69式高清视频在线观看_四虎com | 99精成人_国产欧美在线一区二区三区_国产AV综合第一页_丁香五月开心婷婷激情综合_潜行者1—42集免费观看视频播放_91一区二区国产好的精华液 | 亚欧欧美人成视频在线_裸体歌舞一区二区三区在线观看_亚洲18私人小影院_91国内揄拍国内精品_成人羞羞网站入口_美女被强奷到抽搐的高潮视频喷奶水 | 国产午夜三级一区二区三_免费欧美精品_欧美做a视频_中文字幕人妻被公上司喝醉在线_人人超操_这里只有精品视频 | 亚洲精品自产拍在线观看动漫_狠狠人妻久久久久久综合蜜桃_精品无码成人久久久久久_黄色毛片视频_亚洲作爱网_亚洲成人看片 | 日韩视频精品_国产综合内射日韩久_让少妇高潮无乱码高清在线观看_国产精品影院在线_扒开双腿疯狂进出爽爽爽视频_中文字幕亚洲在线 | 国产亚洲精久久久久久无码_国产av无码字幕制服高清_亚洲精品视频播放_精品无人国产偷自产在线_cos国产精品专区在线观看_欧美猛交xxxx | 日本一级片_99热这里是精品_成人午夜精品亚洲日韩_在线男人天堂_日本不良网站在线观看_亚洲第1页 | 午夜视频精品_日本黄色免费观看_男女无遮挡在线_日韩精品网站_超碰这里只有精品_国产成人精品a视频一区 | 亚洲欧美精品一区二区_特级黄色一级片_桃色五月_日本免费一二三_男女18禁啪啪无遮挡激烈_美女av免费观看 | 精品人妻伦一品二品三品免费视频_国产精品久免费的黄网站_精品国产综合成人亚洲区2022_欧美日韩亚洲精品瑜伽裤_在线看片毛片无码永久免费_日本中文字幕在线观看视频 | 免费看片18_亚洲同性猛男毛片_色喜国模李晴超大尺度_伊人情人网综合_中国黄色一级大片_免费国产日韩欧美 | 嘿咻嘿咻成人免费视频播放_91成人免费在线视频_搡老女人老91妇女老熟女o_国产AV无码专区亚洲AV中文_天天爽亚洲中文字幕_国产精品丝袜 | 九九99九九精彩6_男男双龙调教失禁高潮play_亚洲爱爱视频_精品国内自产拍在线观看_国语精品自拍_黄色快播网站 | 国产在线观看无码不卡_熟女丝袜潮喷内裤视频网站_国产一区欧美一区_国语精品_欧美黄色片在线_99热影视 国产性精品_久久精品无码人妻属于什么级别_成人性视频在线_久久超碰免费_国产精品综合久久久久_激情偷乱人伦在线视频 | 午夜欧美成人_中文字幕乱人伦高清视频_亚洲AV久久精品狠狠爱AV_爱色av网址_欧美老妇多毛XXXXX极瑞视频_人妻与子交毛片 | 欧美丰满熟妇BBB久久久_久久人人爽人人爽人人片av免费_中国真实偷乱视频_中文在线一二区_99精品国产成人综合_青春草久久 | 一本久道热线_内射一面膜上边一面膜下边_亚洲成AV人在线视达达兔_毛片网站免费_亚洲精品国产精品乱码不99_日韩精品中文字幕有码无码 | wwwav在线播放_久久久久9999亚洲精品_久久大屁股少妇_乱中年女人伦AV二区_亚洲精品aaaaa_亚洲成人在线免费观看 | 内射夜晚在线观看_一区二区三区四区国产精品_国产精品99久久久久久天美传媒_日韩中字幕_免费看小12萝裸体视频国产_久久重口味 | 久久久久亚洲Aⅴ无码_人妻斩熟女倶乐部六十路_荫蒂添的好舒服a片_亚洲第一av在线_国产v综合v亚洲欧美_超碰在线caoporn | 羞羞视频日本_三级合集_色视频在线网站_日本三级在线视频_国产午夜成人免费看片_久久爱另类一区二区小说 | 日日夜夜人人_大地影视中文第二页的背景故事_成人福利_久草成人在线视频_免费草比视频_韩国毛片免费观看 | 成人免费A级毛片久久_99爱免费_久久国产精品99久久人人澡_中文字幕日韩精品欧美一区蜜桃网_熟女毛多熟妇人妻在线视频_又紧又大又爽精品一区二区 | 欧美国产激情视频_精品国产一区二区三区久久久狼_五月天激情婷婷婷久久_欧洲激情在线_中文字幕男人天堂_先锋影音人妻啪啪va资源网站 | 风韵少妇性饥渴推油按摩视频_日韩中文字幕在线一区_成人免费大片黄在线观看com_7777女女免费女淫网站_国产成人无码WWW免费视频在线_国精区二区三区 | 97se亚洲综合自在线尤物_国产极品粉嫩正在播放软件特点_日本国产在线视频_国产一级一区二区_免费成人av_在线a亚洲v天堂网2019无码 | 久久精品国产亚洲夜色av网站_先锋影音中文字幕_天天干天天操天天爱_四虎在线视频观看_在线中文字幕亚洲_HEYZO无码中文字幕人妻 | 欧美在线精品一区_桃乃木香奈中文字幕在线观看_在线观看视频www_久草福利资源站_久久久看_成人国产精品2021 | 国产日韩在线看片_亚洲一区二区中文_欧美乱人伦中文字幕在线_99精品欧美_久久午夜综合久久_天天骑天天射 | 亚洲资源视频_国产情侣真实露脸在线_四色av网站入口_日本一区二区三区日本免费_国产91天堂素人系列在线播放_欧美gv在线 | 看毛片看毛片_亚洲午夜精品久久久久久浪潮_欧美在线www_中年好声音3粤语免费观看_久久久久久久久久久视频_高清在线视频 | 神马影院91_av一级在线观看_特级做a爰片毛片免费看108_久久深爱网_亚洲国产清纯_国产h视频 | 成人春色www在线_久久调教_国产91综合网_日本VS中国VS亚洲看无码_给丰满丁字裤少妇按摩到高潮_操女人的网站 | 精品国产一区二区三区蜜殿_中文在线а天堂中文在线新版_中文字幕一区二区免费_漂亮人妻被中出中文字幕久久_性xxxxx欧美极品少妇_久久久久69 |