2011-08-27 97 views
5

Có bất kỳ công cụ nào để chạy ứng dụng C++ được viết bằng QT trên trình duyệt web tiêu chuẩn không? Ứng dụng C++ phải chạy từ trang web, thực hiện một số phép toán và trả lại kết quả cho trang web một lần nữa.Cách chạy ứng dụng C++ trên trang web?

+1

Bạn có muốn nhúng mã C++ bên trong JavaScript hay không (sử dụng trình biên dịch C++ - JavaScript như [Emscripten] (http://stackoverflow.com/a/14900915/975097)), hoặc bạn có muốn sử dụng plugin trình duyệt thay thế? –

Trả lời

-3

Có thể bạn có thể nhúng mã vào điều khiển ActiveX.

+0

ActiveX không phải là công cụ đa nền tảng. Nó nhạy cảm trong trường hợp của tôi. – lexl

+2

Sau khi đọc tất cả các bình luận khác có vẻ như bạn muốn có một nền tảng corss và giải pháp trình duyệt chéo. Vì vậy, lựa chọn duy nhất là dịch mã C++ sang Javascript. Nếu mã của bạn chỉ là một số toán, bạn có thể dịch nó sang Javascript. –

+0

Vấn đề là ứng dụng của tôi nhạy cảm với thời gian thực hiện. Nó là một bộ xử lý video thời gian thực với rất nhiều toán và nó sử dụng rộng rãi các thư viện C++ của bên thứ ba. Không thể chuyển ứng dụng của tôi sang khung Javascript để thực hiện phép toán đó. Nhưng cảm ơn bạn nữa. – lexl

2

Bạn không thể. Bạn có thể viết phía máy chủ trong một ứng dụng web trong C++, tất nhiên, nhưng khung công tác GUI Qt chỉ dành cho các ứng dụng hiển thị giao diện người dùng của họ trên máy mà họ đang chạy. (Với sự cẩn thận thông thường trong trường hợp kết nối X11 từ xa và vv, nhưng điều đó sẽ không giúp bạn cho một ứng dụng web).

+0

Có thể thực hiện toán học trong phần ứng dụng và hiển thị trực quan C++ trong trình duyệt web thông qua JavaFX hay một cái gì đó tương tự? – lexl

+0

Bạn chắc chắn có thể thực hiện các phép tính trong C++ ở phía máy chủ và hiển thị kết quả thông qua giao diện web. Bạn thậm chí có thể sử dụng các phần không phải GUI của Qt để cấu trúc ứng dụng C++ của bạn mà bạn muốn, nhưng bạn không thể sử dụng GUI Qt cho tương tác người dùng. Nó không phải là khá rõ ràng với tôi những gì JavaFX sẽ mua cho bạn; một giao diện người dùng phía máy khách dựa trên JavaScript thông thường (nơi bạn tạo ra các đồ thị và như vậy trên máy chủ và chuyển chúng dưới dạng PNG) sẽ đơn giản như vậy. –

+0

Trong trường hợp của tôi, điều quan trọng là đặt mã tính toán được viết bằng C++ ở phía máy khách và ứng dụng phải hoạt động giống như ứng dụng khách thông minh i. e .: cung cấp các ứng dụng qua kết nối http web không yêu cầu cài đặt (hoặc cung cấp cài đặt tự động) tự động cập nhật mà không có hành động của người dùng có giao diện ứng dụng dành cho máy tính để bàn Hiện có một số nền tảng để xây dựng các ứng dụng như vậy: Adobe Flash , JavaFX và Silverlight.JavaFX chỉ phù hợp với mục đích của tôi nhưng tôi không biết là nó có thể gói nó với mã tính toán C++ hay không. – lexl

8

Khám phá NaCl (Native Client). Không có Qt, nhưng bạn có thể sử dụng C++.

+4

Có thực sự điều này: http://labs.qt.nokia.com/2010/06/25/qt-for-google-native-client-preview/ nhưng tôi không biết nó trưởng thành như thế nào. –

+0

Các liên kết thú vị (+1). Có thực sự sử dụng được không? – Jiri

+0

Trong khi chrome không có chức năng này và một lập trình viên cao cấp có thể hưởng lợi từ nó ... Tôi không biết rằng câu trả lời này giúp OP. –

1

Tôi đã đọc về một ứng dụng mẫu như thế này. Tôi nghĩ bạn có thể tìm kiếm cụm từ này "ứng dụng Qt WebKit Hybrid". Trong ví dụ đó, giao diện người dùng được viết bằng HTML và Javascript và phần cuối trong C++. Thậm chí, các chủ sở hữu đối tượng C++ cũng có thể được chuyển sang Javascript. Tôi không chắc chắn tôi là chính xác nhưng tôi là một phần chính xác.

EDIT: Đây là liên kết. https://developer.qt.nokia.com/wiki/Server-Driven_UI_with_Hybrid_QtWebkit

+0

Cảm ơn bạn đã trả lời. Việc sử dụng Qt WebKit là giải pháp hoàn toàn ngược vì nó cho phép nội dung web được tích hợp với C++ và được thực hiện trên khung công tác Qt. Nhưng tôi muốn thực thi mã C++ trên trang web. Qt WebKit không phải là những gì tôi mong đợi nhưng tôi vẫn nhìn vào công cụ này như một sự thỏa hiệp. – lexl

1

Có thể biên dịch mã C++ thành JavaScript bằng Emscripten và sau đó gọi hàm C++ được biên dịch từ JavaScript, as explained here. Điều này sẽ cho phép bạn chạy mã C++ trong trình duyệt web hoặc môi trường JavaScript khác mà không cần thêm bất kỳ plugin nào.

Các vấn đề liên quan