我有一個問題,從C++ dll.I讀取數據必須用C proccee數據++的dll和Delphi.I我的UI寫作要在從TList傳遞給DLL,然後DLL插入一些數據到list.Is有任何方式來做到這一點?更好的例子,最好的問候。從C++ dll讀取矢量數據?
-3
A
回答
2
不能具體德爾福型狀TList
傳遞到C++ DLL,除非DLL寫在C++ Builder中。
C++編譯器將不能夠處理特定的Delphi型的TList(或任何其他類,動態陣列,串,集,陣列開放等)。而且Delphi不能處理C++ vector
類型(或任何其他模板或類類型)。 所以乾脆不要這樣做。
即使您的DLL是使用與Delphi編譯器相同版本的C++ Builder編寫的,該編譯器知道TList
,您仍然會遇到問題,因爲您正在處理兩個不同的RTL實例,工作不正常(內存管理,RTTI等)。
而且注意,C++ Builder中的包都沒有解決的辦法:Delphi不能使用寫在C++ Builder的BPLs。不過,C++ Builder可以使用Delphi包。
所以只是通過普通的舊數據(POD)類型。傳遞簡單類型的數組或簡單類型的結構體/記錄,並將數組作爲指針傳遞給第一個元素。不要嘗試傳遞動態數組或打開數組參數。這些都是特定於Delphi的。
您可以使用動態陣列上的德爾福的一面,只要你只是一個指針傳遞給第一個元素,而你分配足夠的空間DLL來填充它。不要讓DLL管理內存或嘗試重新分配陣列。它不能。作爲額外參數傳遞數據的最大長度。該DLL應該只有填充該陣列,不再。
對於它的價值,我寫了一篇關於DLL dos and don'ts。請閱讀並注意它。這篇文章更詳細地解釋了我上面所寫的內容,以及更多關於編寫跨語言邊界使用的DLL的內容。
相關問題
- 1. ActionScript讀取矢量的數據類型?
- 2. 將數據讀入矢量
- 3. 從excel中讀取數據到矢量中
- 4. Octave/Matlab從文件中讀取數據作爲矢量陣列
- 5. C++ Qwt - 從矢量繪製數據
- 6. C++ sscanf讀取字符串矢量
- 7. C++矢量數據訪問
- 8. 讀取數據從.txt(C++)
- 9. 從C#讀取Excel數據#
- 10. 使用GDAL/OGR api讀取矢量數據(shapefile) - 如何?
- 11. 讀取帶有矢量列的R數據幀(由NetLogo存儲)
- 12. C++:從矢量中讀取元素,循環被跳過
- 13. 從C#讀取非.NET DLL版本?
- 14. 矢量矢量C++
- 15. C++:從矢量中獲取值
- 16. 獲取Word頻率從矢量在C++
- 17. 從OpenStreetMap獲取作爲MySQL數據庫的矢量數據
- 18. 從txt文件讀入矢量然後排序數值C++
- 19. 從帶有字符的文件中讀取特定整數到矢量中(C++)
- 20. C++將X矢量數據插入到另一個矢量
- 21. 如何從csv讀取一維數組/矢量到R
- 22. 如何從XML文件讀取base64數字矢量?
- 23. 上指針的矢量返回指針從C++ DLL到Python
- 24. C++獲取矢量類型
- 25. InputStream從偏移量讀取數據
- 26. 如何從XML變量讀取數據?
- 27. 從二進制文件讀取數據轉換爲matlab,拆分爲矢量
- 28. 從.csv文件讀取給我一個矢量,而不是數據框?
- 29. 使用從文件讀取的數據填充對象的矢量
- 30. 矢量的矢量,C++
歡迎堆棧溢出。請花些時間閱讀[The Tour](http://stackoverflow.com/tour),並參閱[幫助中心](http://stackoverflow.com/help/asking)中的資料,瞭解您可以在這裏問。 –
@Victoria Wut ?? –
@維多利亞你應該再次仔細閱讀我的個人資料。 –