Tôi cần tạo trình bao bọc cho các lớp FLTK C++ để sử dụng nó trong pure C. Tôi biết, SWIG có thể làm điều đó và tôi biết cách tạo trình bao bọc cho C#, Python vv Nhưng tôi không biết cách bọc C++ vào C bằng SWIG. Nhiệm vụ đơn giản, nhưng tôi không thể tìm thấy câu trả lời :) Xin vui lòng, giúp đỡ.C++ to C Wrapper sử dụng SWIG (cho FLTK)
Trả lời
Tôi không nghĩ SWIG hỗ trợ tạo trình bao bọc C ra khỏi hộp. Bạn luôn cần chỉ định ngôn ngữ đích. Trong năm 2008, có một GSoC project để viết một C backend, nhưng điều đó dường như không bao giờ được hoàn thành/kết hợp vào SWIG.
Tôi không nghĩ rằng tài liệu này có nghĩa là phải được thực hiện theo nghĩa đen. Thay vào đó, điều này minh họa cách các hàm bao bọc cho mỗi ngôn ngữ trông như thế nào. Thay vì 'new_list', trình tạo Python (ví dụ) tạo' _wrap_new_List'; điều này trở thành có sẵn cho Python là 'new_List'. '_wrap_new_List' làm nhiều hơn tài liệu nói, vì nó cũng cần tích hợp với máy ảo Python. –
Bây giờ tôi thử SWIG với phần phụ trợ C. Biên dịch Nó thành công với mingw, nhưng có một số lỗi trong khi phân tích cú pháp FLTK bao gồm (Chẳng hạn: FLTK13 \ FL \ filename.h (60): Lỗi: Lỗi cú pháp trong đầu vào (1).). Tôi sẽ báo cáo kết quả ... Cảm ơn ý tưởng! – Artem
Tôi quyết định đi một cách khác để giải quyết vấn đề của tôi, nhưng đối với vấn đề được mô tả trong câu hỏi trên, giải pháp mà Martin cung cấp - giải pháp tốt nhất, có thể được tìm thấy. Cám ơn bạn một lần nữa. – Artem
- 1. TypeInitializationException khi sử dụng swig cho C#
- 2. Cách SWIG std :: string & to C# ref string
- 3. C# Ghostscript Wrapper
- 4. để tạo C++ wrapper trên lớp java
- 5. Truy cập C++ typedef bằng Python sử dụng SWIG
- 6. Các đại biểu trong SWIG - C#
- 7. tạo mô-đun mở rộng PHP C/C++ sử dụng SWIG
- 8. Không có trình lặp cho Java khi sử dụng SWIG với C++ 's std :: map
- 9. Làm thế nào để sử dụng swig để tạo ra giao diện php cho C++ vậy
- 10. thay thế C++ bằng go + swig
- 11. Việc đóng gói một lớp C++ bằng Python sử dụng SWIG
- 12. Sử dụng thư viện c/C++ sử dụng mạng cho mục tiêu ứng dụng iphone c
- 13. C++ cross-platform zlib simplifer-wrapper
- 14. Porting C++ to C# - templates
- 15. C++ Maps cho Nhiều-to-Nhiều
- 16. SecureString to Byte [] C#
- 17. LINQ to vấn đề wrapper NHibernate sử dụng nơi tuyên bố
- 18. Sử dụng a.vim cho C++
- 19. C Programming: malloc() cho một mảng 2D (sử dụng con trỏ-to-pointer)
- 20. C# OpenFileDialog Lock To Directory
- 21. System.Drawing.Image to stream C#
- 22. Fortran90 to C# Conversion Issue
- 23. Expose một vector như một memoryview sử dụng SWIG
- 24. Sử dụng StructureMap với log4net wrapper
- 25. SWIG: Báo cáo ngoại lệ Python từ mã C++
- 26. LINQ to XML qua C#
- 27. C++ wrapper cho SQLite3 API - giải pháp thay thế cho sqlite3pp
- 28. C++ std :: string to boolean
- 29. C# DateTime to String Issue
- 30. Sử dụng Maven cho các dự án C/C++
Thú vị, từ những gì tôi có thể nói từ tài liệu, SWIG tạo trình bao bọc C cho mã C++, bạn có thể sử dụng trực tiếp – Hasturkun
Cảm ơn bạn, nhưng tôi không thể tìm thấy trong thông tin tài liệu về cách thực hiện điều đó. Tôi sẽ tiếp tục tìm kiếm ... – Artem
@ Hasturkun: Tôi nghĩ bạn đang hiểu sai tài liệu. –