免费国产网站_秋霞午夜一区二区三区视频_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開發庫獲得數據手套的角度數據哦~~



    主站蜘蛛池模板: 自拍偷区亚洲综合美利坚_亚洲AV大乳天堂在线观看_男人视频网_久久久久久久久久国产_国产激情不卡_杨幂好大好硬好深好爽想要 | 成人午夜国产_亚洲成人综合在线_国产9页_亚洲午夜久久久影院伊人_丰满少妇人妻HD高清大乳_成人毛片网站 | 国产大屁股视频免费区_91在线色视频_欧美大片免费影院在线观看_欧美黑人性生活_老司机网站色奇吧久久_国产精品中文字幕一区二区三区 | 日本一本二本视频_中文字幕第69页_日本护士xxxxhd少妇_久久国产视频一区二区_无毒三级网站_日韩片在线观看 | 欧美精品欧美人与动人物牲交_柠檬导航-柠檬福利导航_国产一区二区大片在线观看_国产午夜福利短视频_夜夜超碰_亚洲精品一区二区三区福利 | 99精品久久久久久_里面也请好好动漫2在线观看_久久躁日日躁aaaaxxxx_亚洲VA在线VA天堂XXXX中文_伦理黄色片_国产专区av | 91精品久久久久久久久久另类_性色生活片在线观看_桃花缘高清在线观看视频免费_亚洲AV国产精品无码A片_丰满少妇又爽又紧又丰满在线观看_亚洲午夜福利在线观看 | 色久在线_一级全毛片_亚洲综合网址_国产大学生情侣自啪高清_久操不卡_国产精品女人视频 | 国产天堂在线_国产精品自在线拍国产_男人阁久久_无码精品毛片基地_国产视频久久精品_亚洲大片精品永久免费看网站 | 免费无码黄动漫在线观看尤物_亚洲综合不卡_777久久久免费精品国产_欧洲免费在线视频_国产亚洲精品v_日本免费影院 | 中日韩一区二区三区_www.成人国产_亚洲日韩A∨无码久_亚洲成年看片在线观看_亚洲久操_四虎永久地址 | 亚洲第一页乱_99久久超碰中文字幕伊人_国产在线欧美日韩精品一区二区_成人91免费视频_免费av在线网_成人欧美一区二区 | 超碰公开97_无码精品人妻一区二区三区98_亚洲av日韩av高潮无码专区_天天看av_97碰成人国产免费公开视频_91性色 | 亚洲国产一区二区三区91_一区二区三区高清在线_精品视频免费在线_免费一区二区无码东京热_欧美吃奶三级特黄_国产成人无码精品久久久露脸 | 娇妻被生人粗大猛烈进出高潮_精品成品国色天香卡一卡二卡三_少妇张开腿迎合高潮_免费在线播放毛片_丰满少妇大力进入av亚洲_亚洲精品aaaa | 欧美成人无码一二三_国产成人性色生活片_激情人妻另类人妻伦_国产999免费视频_成人久久网站_久久久久国产精品人 | 欧美性a视频_久久黄色a级片_无码人妻aⅴ一区二区三区麻豆_亚洲综合中文字幕在线_免费国产wwwwwww网站_欧美男人操女人视频 | 亚洲成A人片在线观看无码专区_国产精品1区2区3区_色综合久久66_在线另类_欧美一级爆毛片_国产在线首页 | 春色校园综合人妻av_日韩有码中文字幕二区_日本美女一区二区三区_国产女精品_狠狠色综合网站久久久久久久高清_欧美国产综合视频 | 4438x成人免费_国产乱子伦XXXX_日本视频在线免费_琪琪在线观看_91肥臀后入_国产午夜高潮熟女精品av | 精品中文字幕视频_亚洲精品在线一区二区_人人添人人妻人人爽夜欢视AV_秋霞在线观看片无码免费_久草在线高清_91亚洲人成网污www | 三年片观看免费观看大全_色播.com_91成人一区_9191成人_色噜噜狠狠一区_巨大黑人video | 制服丝袜一区二区三区_日本综合一区_天堂久久精品_一卡二卡久久_中文字幕亚洲无线码在线一区_欧美激情做真爱牲交视频 | 超碰在线视频人人湿人人澡com_国产伦精一区二区三区_奇米影视777在线观看_国产佗精品一区二区三区_欧美午夜影院_国产二区在线看 | 91麻豆国产精品_亚洲成AV人最新无码不卡短片_亚洲精品国产AV天美传媒_亚洲视频在线免费观看_久久国产色_粉嫩av网 | 99久久激情视频_狼友AV永久网站免费观看孕交_免费A级毛片在线播放不收费_91在线导航_17c在线观看免费视频播放_午夜福利在线观看老司机 | 99综合99_国产乱子影视频上线免费观看_69av在线视频_性猛交富婆xxxxx乱大交_国产一级片内射免费视频播放_婷婷六月色 | 国产精品国产三级国产aⅴ无密码_69xxx免费视频_亚洲黄色成人_男插女青青影院_国产91嫩草_日本福利一区二区三区 | 无码久久精品国产亚洲AV影片_欧美一级淫片丝袜脚交_午夜三级毛片_亚洲av久久无码精品影视_国产精品嫩草影院久久_久久综合久色欧美综合狠狠 | 踪合国产第二页_国产SUV精品一区二区88L_猫咪社区免费资源在线观看_一级毛片视频免费观看_国产精品麻_久久理论视频 | 亚洲综合视频在线观看_手机在线日韩_大陆一级毛片免费视频观看i_中文字幕日韩精品亚洲一区_久久精品波多野结衣av_成人www 国产视频久久久久_99在线免费_亚洲成人精品_无码精品第1页_成人va视频_国产精品偷伦费观看一次 | 久热久热久热_国产亲子乱A片免费视频_无码精品尤物一区二区三区_亚洲精品国产精品国自产_日韩一级片在线观看_youjizz中国熟女 | JJZZ中国JJZZ_精舞门在线观看_综合精品影视国产_国产日本欧美在线_91福利网_国产麻豆自拍 | 最新av网址大全_欧美黄在线_夜夜嗨av一区二区三区四季av_亚洲第一AV无码专区_国产精品玖玖资源站大全_国内午夜国产精品小视频 | 911国产在线专区_久久色网站_日韩在线国产_黄页在线免费观看_国产精品久久成人_www.日本高清.com | 在线观看国产网址你懂的_最新日韩精品在线观看_午夜性色福利免费视频在线播放_亚洲一二区精品_樱花草在线观看播放免费视频_av高清免费在线观看 | 国产免费黄片和v片_国产成人二区_中文字幕日韩视频_少妇又色又紧又爽又刺激视频_偷拍做爰吃奶视频免费看_华人91视频 | 日日碰狠狠添天天爽超碰97_人人妻人人做人人爽精品_久久亚洲精选_欧美a一区_妇欲欢公爽公妇精品_av资源在线观看免费高清 | 国产成人综合久久免费精品_韩日av在线免费观看_另类av_美女高潮久久_多男一女野战高潮做爰视频_久久久久久久久嫩草精品乱码 | 99v久久综合狠狠综合久久_国产精品点击进入在线影院高清_色欲色香天天天综合网WWW_欧美首页_97精品久久久_亚洲精品美女视频 | 久久久www成人免费精品_久久伊人亚洲_欧美性猛交xxxxxⅹxx88_婷婷四房综合激情五月在线_日韩一区二区三区射精_1024国产精品永远免费 |