Kết hợp 2 ngôn ngữ C# (gui) & C++ (performance) trong 1 project
Chào các bạn
mình thấy có những project sử dụng nhiều ngôn ngữ khác nhau. Mình đang muốn làm 1 project dùng c# và c++, mình thì theo c++, c# chỉ biết căn bản, và winform cũng căn bản. c++ thì m lại chưa học về gui nhiều lắm, chủ yếu mình làm trên console với gui cơ bản, kiểu command line, mà project mình làm có gui, mà c++ làm gui thì theo mình biết có qt, visual studio cũng hỗ trợ kéo thả gui cho c++. Nhưng mình muốn làm gui trên c# luôn, và phần xử lý thì minh dùng c++ thì làm như thế nào nhỉ?
xincamon
Nếu là C# và C++ thì bạn nên chọn 1 thứ thôi,
C++ thì có rất rất nhiều thư viện hỗ trợ GUI, kéo thả có Qt, MFC,…
GUI chỉ code thì wxWidget, Nana(viết như HTML), …
C# thì xài độc quyền windows hỗ trợ
c++ làm giao diện nhọc lắm
Qt, MFC có gì đâu mà mệt bạn?
Xem thêm Apache Thrift, cho phép 1 function của ngôn ngữ này gọi 1 function của 1 ngôn ngữ khác, nhưng không biết có hỗ trợ C# ko?
Mình hay dùng nó để kết nối Java, Python, C++ trong 1 project, thay vì dùng các tool đặc thù của từng ngôn ngữ.
Qt tham khảo ở đâu vậy bạn?
qt mình có nghe, lên trang chủ có đủ tài liệu cả , nhưng ở việt nam thấy còn ít người dùng, ít công ty tuyển, nên ngại học
nghe có vẻ hay, mình cũng theo 3 ngôn ngữ chính là java, c/c++ và python, bạn có thể cho mình xin ít tài liệu về vấn đề trên không
Nhớ không nhầm thì từ C++ build ra DLL rồi import qua C# xài được.
Hình như là dùng PInvoke gì gì đó @_@
cần lắm thông tin chi tiết
Hi Nấm Lùn
GG trước khi hỏi.
Use C++ codes in a C# project — solution of wrapping native C++ with a managed...
In the previous blog of unmanaged dll (here), I created DLL from unmanaged C++ codes and used dllimport/dllexport to import/export unmanaged C++ functions for uses in C#. If you want to use just a …
http://www.dorodnic.com/blog/2014/12/10/calling-cpp-by-example/
Qt hiện tại có 2 bản, bản free-source thì hiện tại nó theo license kiểu dở dở ương ương, thành ra những người làm phần mềm để bán cũng ngại dùng:
qt.io
Qt | Cross-platform software development for embedded & desktop
Qt is the faster, smarter way to create innovative devices, modern UIs & applications for multiple screens. Cross-platform software development at its best.
Source code public trên github (không được sửa mã nguồn ngay cả khi gặp bug nếu là dùng bản miễn phí):
GitHub
Qt
*** ATTENTION!!! THIS MIRROR IS STALE!!! *** Official mirror of the qt-project.org qt/ git repositories
Cứ làm giao diện như Office, Photoshop, custom GUI đi rồi sẽ thấy nó nhọc.
Chứ kéo cái nút vào ấn được là được thì cũng không nhọc lắm.
Tìm hiểu PInvoke.
Sẽ có GUI đẹp của những thứ loanh quanh C# và hiệu năng thần thánh của C++
Đã từng chơi C# + C: hiệu năng còn đập chết C++
Kết hợp được, nhưng không nằm chung project được, phải để 2 project riêng biệt.
Thêm 1 cái InteropService. 2 dòng define là xài. Nhưng cũng tuỳ cái.
Bạn có ví dụ không, cho xin link?
Đây là những dòng lệnh để gọi 1 hàm khởi tạo camera trong opencv ( viết bằng C/C++ đã build ra *.dll)
Ồ, cảm ơn, mình tưởng có cách khác, hóa ra cũng là P/Invoke
Thì đã bảo PInvoke còn gì.
C# và C++ chỉ gần giống nhau phía ngôn ngữ (cú pháp).
Phía sau rất khác nhau viết chung làm sao mà compile được
C# build trên linux/MacOS đọc được C++.dll không bác, hay lại phải vào code đổi tên thành .so, .a, .dylib?