[英]Exchanging data between Visual C++ and Python
這是故事,
我有一個運行車輛模擬器的Visual C ++代碼。 模擬器以矢量形式捕獲車輛的狀態,並且可以從鍵盤或手動(通過代碼)接收控制輸入(例如,轉向角,踏板)。 我的目標是自動化車輛控制,但是,我已經在Python中實現了控件類。
我想從C ++代碼輸入車輛的狀態到python類,其中進行了一些處理。 然后,python類應該輸出相應的控制輸入,由C ++代碼接收。
有沒有一種簡單的方法來實現這一目標? 我看過類似的帖子,但對我來說都沒有。
我想到的一種方法是使用文件,這兩個類讀取和寫入一個文件,從中獲取車輛狀態和控制輸入,然而,這可能會有繁瑣的同步問題!
流水線也是可行的,但看起來非常復雜,除非你能提供一個很好的簡單解決方案:) :)
底線是,我希望C ++類和python類在彼此之間交換數據的同時運行。
提前致謝!
您可以使用Boost :: Python來包裝C ++代碼。
如果您需要同時運行這兩個程序,那么就沒有簡單的方法,您將不得不在兩個獨立的進程之間實現異步通信機制。
實現此目的的一種方法是使用套接字。 這樣,如果需要,您的控制器和C ++應用程序可以在不同的機器上運行。
在C ++方面,您可以將應用程序作為boost::asio
以便從Python控件應用程序中讀取消息並發送響應。 見: Boost Asio
對於python方面,請參閱: Python套接字HowTo
筆記:
boost::python
將允許您從Python調用C ++,從C ++調用Python。
SWIG
還可以用於包裝C ++類,以便可以從Python調用它們。
你可以嘗試ctypes
( 見這里 )?
要從C ++中調用python中的東西,可以使用Python API 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.