การสร้าง web-end สำหรับโปรแกรม C ++


9

ฉันสงสัยว่าอะไรจะเป็นวิธีที่ดีที่สุดในการสร้างเว็บสำหรับเชื่อมต่อกับโปรแกรม C ++ บนเซิร์ฟเวอร์ ตอนแรกฉันคิดว่าเพียงแค่ใช้การทำงานของเชลล์จากภาษาฝั่งเซิร์ฟเวอร์ (เช่นshell_exec()ใน PHP) แต่ฉันสงสัยว่ามีวิธีที่ "ดีกว่า" อาจมีบางสิ่งที่มีถิ่นกำเนิดมากกว่าหรือนี่เป็นการฝึกฝนที่ไม่ดีด้วยเหตุผลบางอย่าง?


ควรอยู่ใน stackoverflow ไม่ใช่ที่นี่ AFAIK อาจจะผิด
Enders

4
ฉันคิดว่ามันจะดีกว่าในโปรแกรมเมอร์เพราะมันเป็นทฤษฎีมากกว่าและไม่จำเป็นต้องใช้คำตอบตามรหัส สิ่งนี้ขึ้นอยู่กับแนวคิดที่ล้อมรอบการบรรลุภารกิจนี้ไม่ใช่วิธีที่แน่นอนในการทำ
เบ็น

คำตอบ:


7

การเขียนโปรแกรมเว็บด้วย C ++ ค่อนข้างล้าสมัย วิธีดั้งเดิมที่จะทำคือกับ CGI ดูที่นี่สำหรับการกวดวิชา

หรือคุณสามารถเพิ่มเว็บเซิร์ฟเวอร์ในตัวเช่นพังพอน

อย่างไรก็ตามฉันคิดว่ามันง่ายที่สุดในการใช้ passthru ของ PHP ตัวอย่างเช่นหนึ่งในเว็บไซต์ของฉันฉันมีโปรแกรม C ++ ที่สร้างภาพเพื่อแสดงภาพที่ฉันทำ:

<?

header("content-type: image/png"); 

$temp = $_GET["temp"];
$rain = $_GET["rain"];

passthru("/home/rrabien/marker $temp $rain")

?>

นี่มันดูดีสำหรับฉันขอบคุณสำหรับฟังก์ชั่น passthru ฉันไม่เคยได้ยินเรื่องนี้เลย ทั้งหมดนี้คือสิ่งที่ฉันเคยมีมาในใจ แต่มันดีที่จะรู้ว่านี่เป็นวิธีที่ดีที่สุดในการบรรลุสิ่งที่ฉันต้องการ ขอบคุณ FigBug
Ben

ห้ามใช้ passthru โดยไม่ต้องป้อนข้อมูลให้ถูกต้องไม่เช่นนั้นคุณจะถูกแฮ็ค อ่านลิงค์นี้: acunetix.com/websitesecurity/php-security-1.htm
Joeri Sebrechts

นี่คือวิธีที่ฉันทำ แต่ฉันใช้ django แทนที่จะส่งผ่านไปยังแอปพลิเคชัน c ++ โดยตรงฉันมีตัวห่องูหลามสำหรับเรียกใช้แอป c ++ ของฉันหรือสื่อสารผ่าน IPC หรือเครือข่ายด้วย daemon โดยใช้ api.Works ภายในได้เป็นอย่างดี
michalmocny

3

Wt, ชุดเครื่องมือเว็บ C ++เป็นห้องสมุดที่มีชุดของคลาสที่ทำให้ง่ายต่อการเพิ่มเว็บอินเตอร์เฟสของความซับซ้อนใด ๆ ในโปรแกรม C ++ โดยจะเน้นที่ส่วนต่อประสานเว็บเท่านั้นและไม่รบกวนโปรแกรมของคุณ


1

ฉันแน่ใจว่ามีกรอบเว็บที่คอมไพล์ได้สำหรับ C / C ++ อย่างไรก็ตามฉันไม่คุ้นเคยกับสิ่งใด

สิ่งที่ฉันคุ้นเคยกับการเป็นความสะดวกในการที่คุณสามารถขยายหลามกับ C ผมเชื่อว่ามันสามารถทำได้ง่ายโดยใช้ swig ระบุว่า Python มีกรอบงานเว็บมากมายเหลือเฟือนี่อาจเป็นตัวเลือกสำหรับคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.