Thậm chí có thể tạo lớp GUI trong C# và phần còn lại của ứng dụng trong C++ không? Nếu tôi không sai một phần mềm antyvirus có GUI được thực hiện trong Delphi. Làm thế nào nó có thể được thực hiện?Có thể không? GUI trong C#, ứng dụng trong C++
Trả lời
Bạn có nhiều lựa chọn để thực hiện nó, bao gồm:
- Sử dụng P/Invoke gọi vào ++ DLL C từ C#.
- Hiển thị giao diện COM từ mã gốc và gọi nó từ C# bằng cách sử dụng COM interop.
- Viết một dịch vụ Windows gốc và gọi nó từ mã được quản lý.
- Sử dụng C++/CLI để viết thư viện được quản lý bằng C++, mà bạn có thể dễ dàng liên kết đến từ C#.
Nếu bạn bắt đầu từ đầu, tùy chọn 4 có lẽ là lựa chọn tốt nhất của bạn. (Ngoài việc chỉ viết toàn bộ nội dung trong C#, tức là.) Ba tùy chọn đầu tiên liên quan đến một số tranh cãi và chi phí, và có lẽ không đáng lo ngại nếu bạn không có lý do thuyết phục như cần phải tương tác với một thư viện gốc hiện có hoặc cần một số kiến trúc hướng dịch vụ.
viết logic ứng dụng trong c + + dll, sau đó sử dụng pinvoke từ C# để nói chuyện với dll.
Vấn đề với điều này là rất khó để sử dụng nhiều hơn một api c-style với nền tảng gọi. Bạn phải đối phó với các tên hàm bị xáo trộn và sau đó bạn vẫn phải đối phó với mã hướng đối tượng differntly. Một wrapper com có lẽ sẽ là một đặt cược tốt hơn. Tất nhiên, bạn luôn có thể quấn mã hướng đối tượng vào api kiểu C. –
@JonathanHenson bạn là đúng. Quan sát tốt. –
Nếu bạn viết logic nghiệp vụ của mình trong C++/CLI và giao diện người dùng của bạn trong C#, thì đó không phải là vấn đề. Nếu bạn muốn viết trong ANSI C++ tinh khiết, bạn có thể phải viết trình bao bọc C++/CLI xung quanh các đối tượng mà bạn muốn hiển thị cho C#.
Xem this answer. Có vẻ như để trả lời vấn đề của bạn
- 1. .NET C# GUI ứng dụng Dòng lệnh
- 2. Sử dụng C# MethodInvoker.Invoke() cho ứng dụng GUI ... có tốt không?
- 3. GUI Java cho ứng dụng C++ - Đây có phải là thiết kế tốt không?
- 4. .NET GUI - C# vs C++/CLI
- 5. GUI Framework/Lib cho C++ trong Windows
- 6. Bạn có thể sử dụng thư viện C++ trong dự án Cocoa (Obj-C) không?
- 7. Tôi có thể gặp lỗi dll thiếu trong khi tải ứng dụng trong C# không?
- 8. Có thể chạy mã Native C++ trong Windows Azure không?
- 9. Ứng dụng dựa trên plugin trong C#
- 10. làm thế nào để khóa GUI ứng dụng trong C# Winform
- 11. Thử nghiệm tự động cho các ứng dụng GUI C/C++
- 12. Windows Service Plus GUI/C#
- 13. Có thể tắt stderr trong C++ không?
- 14. Phủ định của -2147483648 không thể có trong C/C++?
- 15. Có thể sử dụng gợi ý nhánh trong C# không?
- 16. QML trong ứng dụng C++ hoặc ngược lại
- 17. Có thể nhúng Guile trong ứng dụng C++ trên iOS hoặc Android không?
- 18. Có thể nhận biểu tượng bản quyền trong ứng dụng C# Console không?
- 19. Java: Có thể tắt Ctrl-C trong ứng dụng bảng điều khiển Java không?
- 20. Sử dụng VB.NET và C# trong cùng một ứng dụng?
- 21. Ứng dụng C# có theo dõi thời gian chạy của ứng dụng C# không?
- 22. gọi mã opencv C++ trong ứng dụng C#
- 23. Chạy ứng dụng GUI trên linux, không hiển thị gui?
- 24. Chúng tôi có thể chạy ứng dụng C#/WPF trên Mac OS X không?
- 25. Windows GUI Main Loop Trong C# ... ở đâu?
- 26. Bất kỳ ví dụ nào về việc tạo dịch vụ windows trong C/C++? (Không GUI)
- 27. Chuyển (không được quản lý) C++ sang C# so với sử dụng C++ dưới dạng DLL trong ứng dụng C#
- 28. C# .dll trong ứng dụng Android
- 29. C#: Tại sao ứng dụng trong System.Windows.Forms?
- 30. Windows GUI Lập trình C++
Vì lý do gì? –
Có, Visual studio được viết bằng C++ với giao diện người dùng WPF. –