簡體   English   中英

在Visual C ++和Python之間交換數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM