Windows系統(tǒng)Python直接調(diào)用C++ DLL的方法
環(huán)境:Window 10,VS 2019, Python 2.7.12, 64bit
1,打開 VS 2019,新建C++ Windows 動態(tài)鏈接庫工程 Example,加入下列文件,如果Python是64位的則在VS中 Solution platforms 選擇 x64 編譯成64位的 DLL;
Example.h
#pragma once
#ifndef CPP_EXPORTS
#define CPP_EXPORTS
#endif
#ifdef CPP_EXPORTS
#define CPP_API _declspec(dllexport)
#else
#define CPP_API _declspec(dllimport)
#endif
#include <iostream>
using namespace std;
#ifdef __cplusplus
extern "C"
{
#endif
CPP_API int __cdecl getInt();
CPP_API const char* __cdecl getString();
CPP_API void __cdecl setString(const char* str);
#ifdef __cplusplus
}
#endif
Example.cpp
#include "pch.h"
#include "Example.h"
CPP_API int __cdecl getInt()
{
return 5;
}
CPP_API const char* __cdecl getString()
{
return "hello";
}
CPP_API void __cdecl setString(const char* str)
{
cout << str << endl;
}
編譯,得到 Example.dll
2, 打開 Command,cd 到 Example.dll 所在目錄,輸入 Python2,進入python環(huán)境
>>> from ctypes import *
>>> dll = CDLL("Example.dll")
>>> print dll.getInt()
5
>>> getStr = dll.getString
>>> getStr.restype = c_char_p
>>> pChar = getStr()
>>> print c_char_p(pChar).value
hello
>>> setStr = dll.setString
>>> setStr.argtypes = [c_char_p]
>>> pStr = create_string_buffer("hello")
>>> setStr(pStr)
hello
-1043503984
總結
以上所述是小編給大家介紹的Windows系統(tǒng)Python直接調(diào)用C++ DLL的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
- Python擴展C/C++庫的方法(C轉換為Python)
- pybind11: C++ 工程提供 Python 接口的實例代碼
- Python3安裝模塊報錯Microsoft Visual C++ 14.0 is required的解決方法
- C、C++、Java到Python,編程入門學習什么語言比較好
- 基于Python和C++實現(xiàn)刪除鏈表的節(jié)點
- Python嵌入C/C++進行開發(fā)詳解
- ubunt18.04LTS+vscode+anaconda3下的python+C++調(diào)試方法
- 使用C++調(diào)用Python代碼的方法詳解
- 使用C++調(diào)用Python代碼的方法步驟
- python或C++讀取指定文件夾下的所有圖片
- python和C++共享內(nèi)存?zhèn)鬏攬D像的示例
相關文章
Python抓取聚劃算商品分析頁面獲取商品信息并以XML格式保存到本地
這篇文章主要為大家詳細介紹了Python抓取聚劃算商品分析頁面獲取商品信息,并以XML格式保存到本地的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
Python基于pygame實現(xiàn)的彈力球效果(附源碼)
這篇文章主要介紹了Python基于pygame實現(xiàn)的彈力球效果,涉及pygame圖形動態(tài)操作的相關的技巧,并附帶了完整的源碼供讀者下載參考,需要的朋友可以參考下2015-11-11
Python錯誤提示:[Errno 24] Too many open files的分析與解決
這篇文章主要給大家介紹了Python中出現(xiàn)錯誤提示:[Errno 24] Too many open files的分析與解決,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02
python?flappy?bird小游戲分步實現(xiàn)流程
哈嘍,哈嘍~今天小編又來分享小游戲了——flappy?bird(飛揚的小鳥),這個游戲非常的經(jīng)典,游戲中玩家必須控制一只小鳥,跨越由各種不同長度水管所組成的障礙2022-02-02
基于MTCNN/TensorFlow實現(xiàn)人臉檢測
這篇文章主要為大家詳細介紹了基于MTCNN/TensorFlow實現(xiàn)人臉檢測,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05
淺談python3發(fā)送post請求參數(shù)為空的情況
今天小編就為大家分享一篇淺談python3發(fā)送post請求參數(shù)為空的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12

