กลับไปหน้าบทความ

อ่าน 15 นาที

ไมโครซอฟต์ วิชวล ซี++

ซอฟต์แวร์ปี 1993/คอมไพเลอร์ C++/CS1 maint: บริการเก็บถาวรที่เลิกใช้แล้ว/คอมไพเลอร์ C (ภาษาโปรแกรม)/สภาพแวดล้อมการพัฒนาแบบบูรณาการ/ไมโครซอฟต์ วิชวล สตูดิโอ/เครื่องมือพัฒนาไมโครซอฟต์/ลิงก์เก็บเทมเพลต Webarchive

Microsoft Visual C++ ( MSVC ) เป็นคอมไพเลอร์สำหรับภาษาโปรแกรมC , C++ , C++/CLIและC++/CX จากMicrosoft MSVC เป็นซอฟต์แวร์กรรมสิทธิ์เดิมทีเป็นผลิตภัณฑ์แบบสแตนด์อโลน...

ไมโครซอฟต์ วิชวล ซี++

วิชวลซี++
นักพัฒนาไมโครซอฟต์
ปล่อยกุมภาพันธ์ พ.ศ. 2536 [ 1 ] ( 2536-2536 )
เวอร์ชันเสถียร
14.51 (Build 36247) / 15 มิถุนายน 2026 [ 2 ] ( 15 มิถุนายน 2026 )
เขียนเป็นC++ [ 3 ]
ระบบปฏิบัติการวินโดวส์
แพลตฟอร์มIA-32 , x86-64และARM
มีจำหน่ายในภาษาอังกฤษ, ภาษาจีน (ตัวย่อและตัวเต็ม), ภาษาเช็ก, ภาษาฝรั่งเศส, ภาษาเยอรมัน, ภาษาอิตาลี, ภาษาญี่ปุ่น, ภาษาเกาหลี, ภาษาโปแลนด์, ภาษาโปรตุเกส (บราซิล), ภาษารัสเซีย, ภาษาสเปน, ภาษาตุรกี
พิมพ์คอมไพเลอร์
ใบอนุญาตโปรแกรมทดลองใช้และโปรแกรมฟรี
เว็บไซต์visualstudio.microsoft.com/vs/features/cplusplus/

Microsoft Visual C++ ( MSVC ) เป็นคอมไพเลอร์สำหรับภาษาโปรแกรมC , C++ , C++/CLIและC++/CX จากMicrosoft MSVC เป็นซอฟต์แวร์กรรมสิทธิ์เดิมทีเป็นผลิตภัณฑ์แบบสแตนด์อโลน แต่ต่อมาได้รวมเข้ากับVisual Studioและมีให้ใช้งานทั้งใน รูป แบบทดลองใช้และฟรีแวร์มีเครื่องมือสำหรับพัฒนาและดีบักโค้ด C++ โดยเฉพาะโค้ดที่เขียนขึ้นสำหรับWindows API , DirectXและ. NET

แอปพลิเคชันจำนวนมากต้องการแพ็กเกจไลบรารีรันไทม์ Visual C++ ที่แจกจ่ายได้ เพื่อให้ทำงานได้อย่างถูกต้อง แพ็กเกจเหล่านี้มักจะติดตั้งแยกต่างหากจากแอปพลิเคชันที่รองรับ ทำให้แอปพลิเคชันหลายตัวสามารถใช้แพ็กเกจได้ด้วยการติดตั้งเพียงครั้งเดียว แพ็กเกจรันไทม์และแจกจ่ายได้ของ Visual C++ เหล่านี้ส่วนใหญ่ติดตั้งสำหรับ ไลบรารี มาตรฐาน ที่แอปพลิเคชันจำนวนมากใช้[ 4 ]

ประวัติศาสตร์

โปรแกรมคอมไพเลอร์รุ่นก่อนหน้า Visual C++ มีชื่อว่าMicrosoft C/C++นอกจากนี้ยังมีMicrosoft QuickC 2.5 และMicrosoft QuickC for Windows 1.0 ด้วย ปัจจุบัน คอมไพเลอร์ Visual C++ ยังคงใช้ชื่อว่าMicrosoft C/C++และ ณ การเปิดตัว Visual C++ 2015 Update 2 เวอร์ชันปัจจุบันคือ 14.0.23918.0

เวอร์ชัน 16 บิต

  • Microsoft C 1.0 ซึ่งพัฒนามาจากLattice Cเป็นผลิตภัณฑ์ภาษา C ตัวแรกของ Microsoft ในปี 1983 และไม่เป็นไปตามมาตรฐานK&R C
  • C 2.0 เพิ่มการรองรับโมเดลขนาดใหญ่ ทำให้สามารถรองรับได้ถึง 1 MiB สำหรับทั้ง Code Segment และ Data Segment [ 5 ]
  • C 3.0 เป็นเวอร์ชันแรกที่พัฒนาขึ้นภายใน Microsoft [ 6 ]เวอร์ชันนี้มีจุดประสงค์เพื่อให้เข้ากันได้กับ K&R และมาตรฐาน ANSI ในภายหลัง โดยมีการใช้งานภายใน Microsoft (สำหรับ การพัฒนา WindowsและXenix ) ในช่วงต้นปี 1984 และวางจำหน่ายเป็นผลิตภัณฑ์ในปี 1985
  • C 4.0 ได้เพิ่มการปรับปรุงประสิทธิภาพและCodeViewซึ่งเป็นเครื่องมือดีบักเกอร์ระดับซอร์สโค้ด
  • C 5.0 เพิ่มการเพิ่มประสิทธิภาพลูปและ การรองรับ โมเดลหน่วยความจำขนาดใหญ่ ( อาร์เรย์ที่มีขนาดใหญ่กว่า 64 KB)
  • C 5.1 ที่วางจำหน่ายในปี 1988 อนุญาตให้คอมไพล์โปรแกรมสำหรับ OS/2 1.x ได้ เวอร์ชันที่มีดิสก์ขนาด 5.25 นิ้ว จำนวน 14 แผ่น (สองแผ่นมีขนาด 1.2 MB ส่วนที่เหลือมีขนาด 360k) นั้นรวมถึง QuickC ด้วย ส่วนเวอร์ชันที่มีดิสก์ขนาด 3.5 นิ้ว จำนวน 11 แผ่น ขนาด 720k ซึ่งรวมอยู่ในชุดพัฒนาซอฟต์แวร์ OS/2 นั้นรวมถึง MASM 5.1 (ไฟล์ปฏิบัติการเดียวที่ใช้งานได้ทั้งบน MSDOS และ OS/2 1.x)
  • C 6.0 ที่วางจำหน่ายในปี 1989 เพิ่มการสนับสนุนสำหรับโมเดลหน่วยความจำขนาดเล็กและการสนับสนุนที่ดีขึ้นสำหรับมาตรฐาน ANSI C89 (เอกสารระบุอย่างชัดเจนว่าไม่เป็นไปตามมาตรฐาน 100% แต่ดูเหมือนว่าจะใกล้เคียงเพียงพอสำหรับการใช้งานจริง) นอกจากนี้ยังเพิ่ม IDE Programmer's Workbench , การวิเคราะห์การไหลของโปรแกรมทั่วโลก, ตัวเรียกดูซอร์สโค้ด และดีบักเกอร์ใหม่ ที่น่าประหลาดใจสำหรับหลายคนคือ C++ ไม่ได้รวมอยู่ด้วย ทั้งๆ ที่คู่แข่งมีผลิตภัณฑ์ของตนอยู่แล้ว[ 7 ]
  • C/C++ 7.0 เปิดตัวในปี 1992 ยกเลิกการสนับสนุน OS/2 การคอมไพล์ต้องใช้โปรเซสเซอร์ 386 บวกกับตัวขยาย DOSที่ รวมอยู่ด้วย 386MAX [ 8 ]แม้ว่าผู้ใช้จะสามารถกำหนดเป้าหมายตัวขยาย DOS ในโปรแกรมของตนเองที่เขียนขึ้นได้จำเป็นต้องใช้เครื่องมือของบุคคลที่สาม ที่เปิดตัวในภายหลังหลายตัว [ 9 ] เพิ่ม การสนับสนุนในตัวสำหรับC++และMFC (Microsoft Foundation Class Library) 1.0 [ 10 ]
  • Visual C++ 1.0 ซึ่งรวมถึง MFC 2.0 เป็นเวอร์ชันแรกของ "Visual" C++ ที่วางจำหน่ายในเดือนกุมภาพันธ์ พ.ศ. 2536 เป็นไป ตามมาตรฐาน Cfront 2.1 [ 11 ]และมีให้เลือกสองรุ่น: [ 1 ]
  • Visual C++ 1.5 เปิดตัวในเดือนธันวาคม พ.ศ. 2536 รวม MFC 2.5 และเพิ่ม การสนับสนุน OLE 2.0 และODBCให้กับ MFC [ 13 ]นับเป็น Visual C++ เวอร์ชันแรกที่วางจำหน่ายเฉพาะใน รูปแบบ ซีดี รอม เท่านั้น
    • Visual C++ เวอร์ชัน 1.51 และ 1.52 มีให้บริการในรูปแบบบริการสมัครสมาชิก
    • Visual C++ 1.52b มีลักษณะคล้ายกับเวอร์ชัน 1.52 แต่ไม่มี Control Development Kit รวมอยู่ด้วย
    • Visual C++ 1.52c เป็นเวอร์ชันที่ได้รับการแก้ไขจากเวอร์ชัน 1.5 เป็นแพลตฟอร์มการพัฒนาตัวสุดท้าย และอาจกล่าวได้ว่าได้รับความนิยมมากที่สุดสำหรับMicrosoft Windows 3.x สามารถดาวน์โหลดได้จากMicrosoft Developer Network

เฉพาะเวอร์ชัน 32 บิตเท่านั้น

  • Visual C++ 1.0 (ชื่อเดิม: Visual C++ 32-bit Edition) ที่วางจำหน่ายในปี 1993 เป็นเวอร์ชันแรกสำหรับ การพัฒนา 32 บิต (และต้องใช้ Windows NT 32 บิตเป็นโฮสต์) สำหรับสถาปัตยกรรมIntel 386 [ 14 ]แม้ว่าจะวางจำหน่ายในขณะที่ เวอร์ชัน 16 บิต 1.5 พร้อมใช้งานแล้ว แต่ก็ไม่ได้รวมการสนับสนุน OLE2 และ ODBC ไว้ด้วย นอกจากนี้ยังมีให้ใช้งานในรูปแบบชุดรวมที่เรียกว่า Visual C++ 16/32-bit Suite ซึ่งรวมถึง Visual C++ 1.5 ด้วย[ 15 ]
  • Visual C++ 2.0 ซึ่งรวมถึง MFC 3.0 เป็นเวอร์ชันแรกที่เป็นแบบ 32 บิตเท่านั้น ในหลายๆ ด้าน เวอร์ชันนี้ล้ำหน้ากว่ายุคสมัย เนื่องจากWindows 95ซึ่งในขณะนั้นมีชื่อรหัสว่า "Chicago" ยังไม่ได้รับการเผยแพร่ และWindows NTมีส่วนแบ่งการตลาดเพียงเล็กน้อย Microsoft ได้รวมและอัปเดต Visual C++ 1.5 เป็นส่วนหนึ่งของการเผยแพร่เวอร์ชัน 2.x จนถึง 2.1 ซึ่งรวมถึง Visual C++ 1.52 และชุดพัฒนาควบคุม (CDK) ทั้งเวอร์ชัน 16 บิตและ 32 บิต Visual C++ 2.x ยังรองรับ การพัฒนา Win32 ด้วย สามารถดาวน์โหลดได้จากMicrosoft Developer Networkนอกจากนี้ยังมี Visual C++ 2.0 RISC Edition สำหรับ โปรเซสเซอร์ MIPSและAlphaรวมถึงเวอร์ชันข้ามแพลตฟอร์มสำหรับMacintosh ( ชุดคำสั่ง 68000 ) [ 16 ]
    • Microsoft Visual C++ Cross-Development Edition สำหรับ Macintosh เป็นส่วนเสริมสำหรับ Visual C++ ที่แนะนำ Windows Portability Library ซึ่งเดิมเรียกว่า Windows Library for Macintosh [ 17 ] : 17 หรือ Windows Layer for the Macintosh (WLM) [ 18 ] : 16 ซึ่งช่วยให้นักพัฒนาสามารถเขียนแอปพลิเคชันโดยใช้ Win32 และ MFC API ที่สามารถคอมไพล์สำหรับคอมพิวเตอร์ Macintosh สถาปัตยกรรม 68000 ได้[ 17 ]
    • Visual C++ เวอร์ชัน 2.1 และ 2.2 เป็นเวอร์ชันอัปเดตของ 2.0 ซึ่งสามารถใช้งานได้ผ่านการสมัครสมาชิก
  • Visual C++ 4.0 ซึ่งวางจำหน่ายเมื่อวันที่ 11 ธันวาคม 1995 [ 19 ]ได้แนะนำ Developer Studio IDE รูปแบบการจัดวางแผงแบบเรียงต่อกันที่ไม่ทับซ้อนกันซึ่งถือเป็นนวัตกรรมในขณะนั้น ได้แก่ แผงนำทาง แผงตัวแก้ไข/ตัวดีบักเกอร์ระดับซอร์สโค้ด และแผงเอาต์พุตคอนโซล[ 20 ]ซึ่งยังคงมีอยู่ใน ผลิตภัณฑ์ Visual Studio (ณ ปี 2025) Visual C++ 4.0 ประกอบด้วย MFC 4.0 และได้รับการออกแบบมาสำหรับ Windows 95 และ Windows NT เพื่อรองรับโปรเจกต์รุ่นเก่า (Windows 3.x/DOS) เวอร์ชัน 4.0 จึงมาพร้อมกับแผ่นซีดีติดตั้ง Visual C++ 1.52 การอัปเดตที่มีให้ผ่านการสมัครสมาชิก ได้แก่ Visual C++ 4.1 ซึ่งมาพร้อมกับ Microsoft Game SDK (ต่อมาวางจำหน่ายแยกต่างหากในชื่อ DirectX SDK) และ Visual C++ 4.2 ข้ามหมายเลขเวอร์ชัน 3.0 เพื่อให้หมายเลขเวอร์ชันของ Visual C++ 4.0 และ MFC 4.0 เท่ากัน[ 21 ]
  • Visual C++ 4.2 ไม่รองรับการพัฒนา Windows 3.x ( Win32s ) [ 22 ]นี่เป็นเวอร์ชันสุดท้ายที่มีเวอร์ชันข้ามแพลตฟอร์มสำหรับMacและแตกต่างจากเวอร์ชัน 2.x ตรงที่อนุญาตให้คอมไพล์สำหรับชุดคำสั่งPowerPC ได้ด้วย
  • Visual C++ 5.0 (รวมอยู่ใน Visual Studio 97) ซึ่งรวมถึง MFC 4.21 และวางจำหน่ายเมื่อวันที่ 28 เมษายน 1997 [ 19 ]เป็นการอัปเกรดครั้งใหญ่จากเวอร์ชัน 4.2 [ 23 ]มีให้เลือกสี่รุ่น ได้แก่ รุ่นเรียนรู้[ 24 ]รุ่นมืออาชีพ[ 25 ]รุ่นองค์กร[ 26 ]และรุ่น RISC [ 27 ]
  • Visual C++ 6.0 (โดยทั่วไปเรียกว่า VC6 และมีให้เลือกใช้แบบแยกต่างหากในรุ่น Standard, Professional และ Enterprise รวมถึงแบบที่รวมอยู่ใน Visual Studio 6.0) ซึ่งรวมถึง MFC 6.0 ได้รับการเผยแพร่ในปี 1998 [ 28 ] [ 29 ]การเผยแพร่ครั้งนี้ค่อนข้างเป็นที่ถกเถียงกัน เนื่องจากไม่ได้รวมการอัปเดต MFC ตามที่คาดไว้ Visual C++ 6.0 ยังคงได้รับความนิยมและมักใช้ในการบำรุงรักษาโปรเจกต์เก่า อย่างไรก็ตาม มีปัญหาบางประการเกี่ยวกับเวอร์ชันนี้ภายใต้ Windows XP โดยเฉพาะอย่างยิ่งในโหมดดีบัก (ตัวอย่างเช่น ค่าของตัวแปรคงที่จะไม่แสดง) ปัญหาการดีบักสามารถแก้ไขได้ด้วยแพตช์ที่เรียกว่า "Visual C++ 6.0 Processor Pack" [ 30 ]หมายเลขเวอร์ชัน: 12.00.8804
  • Visual C++ .NET 2002 (หรือที่รู้จักกันในชื่อ Visual C++ 7.0) ซึ่งรวมถึง MFC 7.0 เปิดตัวในปี 2002 โดยรองรับการสร้างโค้ดในระหว่างการเชื่อมโยงและการตรวจสอบการดีบักในขณะรันไทม์, .NET 1.0, Visual C#และManaged C++ส่วนติดต่อผู้ใช้ใหม่ใช้ปุ่มลัดและข้อกำหนดต่างๆ ของVisual Basicซึ่งเป็นสาเหตุหนึ่งที่ทำให้ไม่เป็นที่นิยมในหมู่นักพัฒนา C++ หมายเลขเวอร์ชัน: 13.00.9466
  • Visual C++ .NET 2003 (หรือที่รู้จักกันในชื่อ Visual C++ 7.1) ซึ่งรวมถึง MFC 7.1 เปิดตัวในปี 2003 พร้อมกับ .NET 1.1 และเป็นการอัปเกรดครั้งใหญ่ของ Visual C++ .NET 2002 และเป็นเวอร์ชันแรกที่รองรับโครงสร้าง C99 "long long" ถือได้ว่าเป็นแพทช์สำหรับ Visual C++ .NET 2002 ดังนั้น เวอร์ชันอัปเกรดภาษาอังกฤษของ Visual Studio .NET 2003 จึงวางจำหน่ายในราคาที่ต่ำมากสำหรับผู้ที่เป็นเจ้าของ Visual Studio .NET 2002 เวอร์ชันภาษาอังกฤษ Windows 98 เป็นเวอร์ชันต่ำสุดที่ได้รับการสนับสนุนอย่างเป็นทางการ แม้ว่าโปรแกรมง่ายๆ จะทำงานบน Windows 95 และ NT 4.0 ได้ แต่โปรแกรมที่ซับซ้อนกว่าอาจทำให้เกิดการอ้างอิงถึงไฟล์ต่างๆ เช่น ws2_32.dll หรือฟังก์ชันบางอย่างหายไปใน kernel32.dll ในเวอร์ชันต่อมา (Visual C++ 2005) ของคอมไพเลอร์ แม้แต่โปรแกรมง่ายๆ ก็จะไม่ทำงาน (เว้นแต่คุณจะเปลี่ยนไลบรารี C) เพราะมีการอ้างอิงถึงฟังก์ชัน IsDebuggerPresent ใน kernel32.dll ซึ่งมีอยู่เฉพาะใน Windows 98 และเวอร์ชันที่ใหม่กว่าเท่านั้น หมายเลขเวอร์ชัน: 13.10.3077
  • eMbedded Visual C++ [ 31 ]ในเวอร์ชันต่างๆ ถูกใช้เพื่อพัฒนา ระบบปฏิบัติการ Windows CE บางเวอร์ชัน ในตอนแรกมันเข้ามาแทนที่สภาพแวดล้อมการพัฒนาที่ประกอบด้วยเครื่องมือที่เพิ่มเข้ามาใน Visual C++ 6.0 eMbedded Visual C++ ถูกแทนที่ด้วยสภาพแวดล้อมการพัฒนาแยกต่างหากโดยMicrosoft Visual Studio 2005

เวอร์ชัน 32 บิตและ 64 บิต

  • Visual C++ 2005 (หรือที่รู้จักกันในชื่อ Visual C++ 8.0) ซึ่งรวมถึง MFC 8.0 ได้รับการเผยแพร่ในเดือนพฤศจิกายน 2005 เวอร์ชันนี้รองรับ .NET 2.0 และมี C++ เวอร์ชันใหม่ที่กำหนดเป้าหมายไปยังเฟรมเวิร์ก .NET ( C++/CLI ) โดยมีจุดประสงค์เพื่อแทนที่เวอร์ชันก่อนหน้า ( Managed C++ ) อย่างไรก็ตาม Managed C++ สำหรับ CLI ยังคงใช้งานได้ผ่านตัวเลือกคอมไพเลอร์ นอกจากนี้ยังมีการแนะนำOpenMPด้วย Microsoft ยังได้แนะนำTeam Foundation Server ใน Visual C++ 2005 ด้วย Visual C++ 8.0 มีปัญหาในการคอมไพล์โปรเจ็กต์ MFC AppWizard ที่สร้างขึ้นโดยใช้ Visual Studio 6.0 ดังนั้นการบำรุงรักษาโปรเจ็กต์เก่าจึงสามารถดำเนินการต่อได้ด้วย IDE เดิมหากการเขียนใหม่ทำได้ยาก Visual C++ 2005 เป็นเวอร์ชันสุดท้ายที่สามารถกำหนดเป้าหมายไปยังWindows 98และWindows Meได้[ 32 ] [ 33 ]เวอร์ชัน SP1 (14.00.50727.762) ก็มีให้ใช้งานในMicrosoft Windows SDK Update สำหรับ Windows Vistaเช่น กัน
  • Visual C++ 2008 (หรือที่รู้จักกันในชื่อ Visual C++ 9.0) เปิดตัวในเดือนพฤศจิกายน พ.ศ. 2550 เวอร์ชันนี้รองรับ .NET 3.5 Managed C++ สำหรับ CLI ยังคงมีให้ใช้งานผ่านตัวเลือกคอมไพเลอร์ โดยค่าเริ่มต้น แอปพลิเคชันทั้งหมดที่คอมไพล์กับ Visual C++ 2008 Runtimes (การเชื่อมโยงแบบคงที่และแบบไดนามิก) จะใช้งานได้เฉพาะบน Windows 2000, Windows XP SP2 และเวอร์ชันที่ใหม่กว่าเท่านั้น[ 34 ] [ 35 ]ชุดฟีเจอร์ที่เปิดตัวสำหรับ VC9 ซึ่งต่อมารวมอยู่ใน SP1 ได้เพิ่มการสนับสนุนสำหรับส่วนขยายไลบรารี C++ TR1เวอร์ชัน SP1 (15.00.30729.01) ยังมีให้ใช้งานในMicrosoft Windows SDK สำหรับ Windows 7ด้วย
  • Visual C++ บางเวอร์ชันรองรับโปรเซสเซอร์Itanium 2
  • Visual C++ 2010 (หรือที่รู้จักกันในชื่อ Visual C++ 10.0) เปิดตัวเมื่อวันที่ 12 เมษายน 2553 โดยใช้ ฐานข้อมูล SQL Server Compactเพื่อจัดเก็บข้อมูลเกี่ยวกับซอร์สโค้ด รวมถึง ข้อมูล IntelliSenseเพื่อการสนับสนุน IntelliSense และการเติมโค้ดอัตโนมัติที่ดีขึ้น[ 36 ]อย่างไรก็ตาม Visual C++ 2010 ไม่รองรับ IntelliSense สำหรับ C++/CLI [ 37 ] เวอร์ชันนี้เพิ่มไลบรารี การประมวลผลแบบขนาน C++ ที่เรียกว่าParallel Patterns Libraryการสนับสนุนบางส่วนสำหรับC++11ปรับปรุง IntelliSense อย่างมากโดยอิงจากส่วนหน้า ของ Edison Design Group [ 38 ]และปรับปรุงประสิทธิภาพทั้งคอมไพเลอร์และโค้ดที่สร้างขึ้น[ 39 ]เวอร์ชันนี้สร้างขึ้นบน .NET 4.0 แต่รองรับการคอมไพล์เป็นรหัสเครื่องการสนับสนุน C++11 บางส่วนส่วนใหญ่ประกอบด้วยคุณสมบัติคอมไพเลอร์หกประการ ได้แก่[ 40 ]แลมบ์ดา, การอ้างอิง rvalue, auto, decltype, static_assert และ nullptr C++11 ยังรองรับคุณสมบัติไลบรารี (เช่น การย้ายส่วนประกอบ TR1 จากเนมสเปซ std::tr1 ไปยังเนมสเปซ std โดยตรง) เทมเพลตแบบแปรผันก็ได้รับการพิจารณาเช่นกัน แต่ถูกเลื่อนออกไปจนถึงเวอร์ชันในอนาคตเนื่องจากมีลำดับความสำคัญต่ำกว่า ซึ่งเกิดจากข้อเท็จจริงที่ว่า ต่างจากคุณสมบัติอื่นๆ ที่มีต้นทุนในการใช้งานสูง (แลมบ์ดา, การอ้างอิง rvalue) เทมเพลตแบบแปรผันจะให้ประโยชน์แก่ผู้เขียนไลบรารีเพียงส่วนน้อยเท่านั้น ไม่ใช่ผู้ใช้ปลายทางของคอมไพเลอร์ส่วนใหญ่[ 41 ]โดยค่าเริ่มต้น แอปพลิเคชันทั้งหมดที่คอมไพล์กับ Visual C++ 2010 Runtimes จะทำงานบน Windows XP SP2 และเวอร์ชันที่ใหม่กว่าเท่านั้น เวอร์ชัน RTM (16.00.30319) ยังมีให้ใช้งานในWindows SDK สำหรับ Windows 7 และ .NET Framework 4 (WinSDK v7.1) [ 42 ]เวอร์ชัน SP1 (16.00.40219) สามารถใช้งานได้เป็นส่วนหนึ่งของ Visual Studio 2010 Service Pack 1 หรือผ่านทาง Microsoft Visual C++ 2010 Service Pack 1 Compiler Update สำหรับ Windows SDK 7.1 [ 43 ]
  • Visual C++ 2012 (หรือที่รู้จักกันในชื่อ Visual C++ 11.0) เปิดตัวเมื่อวันที่ 15 สิงหาคม 2555 โดยมีคุณสมบัติปรับปรุงการสนับสนุน C++11 และการสนับสนุนการพัฒนาWindows Runtime [ 44 ]
  • Visual C++ 2013 (หรือที่รู้จักกันในชื่อ Visual C++ 12.0) เปิดตัวเมื่อวันที่ 17 ตุลาคม 2013 โดยมีคุณสมบัติเพิ่มเติมในการรองรับ C++11 และC99และแนะนำREST SDK [ 45 ]
  • Visual C++ 2015 (หรือที่รู้จักกันในชื่อ Visual C++ 14.0) เปิดตัวเมื่อวันที่ 20 กรกฎาคม 2015 [ 46 ]มีคุณสมบัติการสนับสนุน C++11/14/17 ที่ได้รับการปรับปรุง[ 47 ]โดยไม่มีการประกาศใดๆ จาก Microsoft Visual Studio 2015 Update 2 เริ่มสร้างการเรียกใช้ telemetry ในไบนารีที่คอมไพล์แล้ว หลังจากที่ผู้ใช้บางรายติดต่อ Microsoft เกี่ยวกับปัญหานี้ Microsoft กล่าวว่าจะลบการเรียกใช้ telemetry เหล่านี้เมื่อคอมไพล์ด้วย Visual Studio 2015 Update 3 ในอนาคต[ 48 ] [ 49 ]ฟังก์ชันดังกล่าวถูกลบออกจากไลบรารีคงที่ Visual C++ CRT ใน Visual Studio 2015 Update 3
  • Visual C++ 2017 (หรือที่รู้จักกันในชื่อ Visual C++ 14.10) เปิดตัวเมื่อวันที่ 7 มีนาคม 2017 [ 50 ]
  • Visual C++ 2019 (หรือที่รู้จักกันในชื่อ Visual C++ 14.20) เปิดตัวเมื่อวันที่ 2 เมษายน 2562 [ 51 ]

เฉพาะเวอร์ชัน 64 บิตเท่านั้น

  • Visual C++ 2022 (หรือที่รู้จักกันในชื่อ Visual C++ 14.30) เปิดตัวเมื่อวันที่ 8 พฤศจิกายน 2021 [ 52 ]
  • Visual C++ 2022 (หรือที่รู้จักกันในชื่อ Visual C++ 14.40) เปิดตัวเมื่อวันที่ 21 พฤษภาคม 2024 [ 53 ]
  • Visual C++ 2026 (หรือที่รู้จักกันในชื่อ Visual C++ 14.50) เปิดตัวเมื่อวันที่ 11 พฤศจิกายน 2025 [ 54 ]

การกำหนดหมายเลขเวอร์ชันภายใน

เมื่อทำงานกับ Visual C หรือ C++ จะต้องพิจารณาหมายเลขเวอร์ชันหลายแบบ หมายเลขเวอร์ชันที่เก่าแก่ที่สุดและเป็นต้นฉบับที่สุดคือหมายเลขเวอร์ชันของคอมไพเลอร์ ซึ่งเพิ่มขึ้นเรื่อยๆ ตั้งแต่ยุคแรกๆ ของคอมไพเลอร์ C ของ Microsoft นี่คือหมายเลขเวอร์ชันที่ได้จากการรันคำสั่งcl.exeโดยไม่มีตัวเลือกใดๆ โดยการนำตัวเลขสองหลักหลังจุดทศนิยมมาตัดทิ้ง จะได้ค่าของมาโครพรีโปรเซสเซอร์ C คือ `<command>` _MSC_VERและตัวแปร CMake คือ `<command> MSVC_VERSION` มาโคร C เวอร์ชันที่ยาวกว่าคือ `<command>` _MSC_FULL_VERใช้เพื่อแยกความแตกต่างระหว่างเวอร์ชันต่างๆ ของคอมไพเลอร์อย่างละเอียดมากขึ้น ตัวอย่างเช่น `<command>` _MSC_VERคือ 1933 แทนเวอร์ชัน 19.33 ของคอมไพเลอร์ C/C++ ของ Microsoft และ ` _MSC_FULL_VER<command>` คือ 193331630

เวอร์ชันของผลิตภัณฑ์ Visual เช่น "17.3.4" ระบุเวอร์ชันของ Visual Studio ที่มาพร้อมกับคอมไพเลอร์เวอร์ชัน 19.33 นอกจากนี้ยังมีเวอร์ชันของ Microsoft Visual C/C++ Runtime Library เช่น "14.3" จากนี้เราสามารถอนุมานเวอร์ชันของชุดเครื่องมือได้ โดยนำตัวเลขสามหลักแรกของเวอร์ชันไลบรารีรันไทม์มาตัดจุดทศนิยมทิ้ง เช่น "143" ซึ่งรวมถึงไลบรารีรันไทม์ Visual C/C++ รวมถึงคอมไพเลอร์ ลิงเกอร์ แอสเซมเบลอร์ เครื่องมือสร้างอื่นๆ และไลบรารีและไฟล์เฮดเดอร์ที่เกี่ยวข้อง ต่อไปนี้เป็นตาราง (ที่สามารถดึงข้อมูลได้) ของหมายเลขเวอร์ชันที่สัมพันธ์กันที่ทราบแล้ว

เวอร์ชัน Visual Studio [ 55 ] [ 56 ]
ชื่อผลิตภัณฑ์VC (รหัสเวอร์ชัน)ปีการตลาด_MSC_VER_MSC_FULL_VERเวอร์ชันไลบรารีรันไทม์
ไมโครซอฟต์ ซี 6.0600
ไมโครซอฟต์ ซี/ซี++ 7.0700
วิชวลซี++ 1.01.08001
วิชวลซี++ 2.02.09002
วิชวลซี++ 4.04.010004
วิชวลซี++ 4.14.110104.1
วิชวลซี++ 4.24.210204.2
Visual Studio 97 [5.0]5.09711005
วิชวล สตูดิโอ 6.0 SP56.01200120088046
วิชวล สตูดิโอ 6.0 SP66.01200120088046
Visual Studio .NET 2002 [7.0]7.020021300130094667
Visual Studio .NET 2003 Beta [7.1]7.120031310131022927.1
Visual Studio Toolkit 2003 [7.1]7.120031310131030527.1
Visual Studio .NET 2003 [7.1]7.120031310131030777.1
Visual Studio .NET 2003 SP1 [7.1]7.120031310131060307.1
Visual Studio 2005 Beta 1 [8.0]8.0254814001400406078
Visual Studio 2005 Beta 2 [8.0]8.0254814001400502158
Visual Studio 2005 [8.0]8.0254814001400503208
Visual Studio 2005 SP1 [8.0]8.0254814001400507278
Visual Studio 2008 Beta 2 [9.0]8.0200815001500207069
Visual Studio 2008 [9.0]9.0201015001500210229
Visual Studio 2008 SP1 [9.0]9.0201015001500307299
Visual Studio 2010 Beta 1 [10.0]10.02010160016002050610
Visual Studio 2010 Beta 2 [10.0]10.02010160016002100310
Visual Studio 2010 [10.0]10.02010160016003031910
Visual Studio 2010 SP1 [10.0]10.02010160016004021910
Visual Studio 2012 [11.0]11.02012170017005072711
Visual Studio 2012 อัปเดต 1 [11.0]11.02012170017005110611
Visual Studio 2012 อัปเดต 2 [11.0]11.02012170017006031511
Visual Studio 2012 อัปเดต 3 [11.0]11.02012170017006061011
Visual Studio 2012 อัปเดต 4 [11.0]11.02012170017006103011
Visual Studio 2012 November CTP [11.0]11.02012170017005102511
Visual Studio 2013 Preview [12.0]12.02013180018002061712
Visual Studio 2013 RC [12.0]12.02013180018002082712
Visual Studio 2013 [12.0]12.02013180018002100512
Visual Studio 2013 อัปเดต 1 [12.0]12.02013180018002100512
Visual Studio 2013 Update2 RC [12.0]12.02013180018003032412
Visual Studio 2013 อัปเดต 2 [12.0]12.02013180018003050112
Visual Studio 2013 อัปเดต 3 [12.0]12.02013180018003072312
Visual Studio 2013 อัปเดต 4 [12.0]12.02013180018003110112
Visual Studio 2013 อัปเดต 5 [12.0]12.02013180018004062912
Visual Studio 2013 November CTP [12.0]12.02013180018002111412
Visual Studio 2015 [14.0]14.02015ปี ค.ศ. 190019002302614
Visual Studio 2015 อัปเดต 1 [14.0]14.02015ปี ค.ศ. 190019002350614
Visual Studio 2015 อัปเดต 2 [14.0]14.02015ปี ค.ศ. 190019002391814
Visual Studio 2015 อัปเดต 3 [14.0]14.02015ปี ค.ศ. 190019002421014
Visual Studio 2017 เวอร์ชัน 15.015.02017191019102501714.1
Visual Studio 2017 เวอร์ชัน 15.115.12017191019102501714.1
Visual Studio 2017 เวอร์ชัน 15.215.22017191019102501714.1
Visual Studio 2017 เวอร์ชัน 15.3.315.3.32017191119112550714.11
Visual Studio 2017 เวอร์ชัน 15.4.415.4.42017191119112554214.11
Visual Studio 2017 เวอร์ชัน 15.4.515.4.52017191119112554714.11
Visual Studio 2017 เวอร์ชัน 15.5.215.5.22017191219122583114.12
Visual Studio 2017 เวอร์ชัน 15.5.315.5.32017191219122583414.12
Visual Studio 2017 เวอร์ชัน 15.5.415.5.42017191219122583414.12
Visual Studio 2017 เวอร์ชัน 15.5.615.5.62017191219122583514.12
Visual Studio 2017 เวอร์ชัน 15.5.715.5.72017191219122583514.12
Visual Studio 2017 เวอร์ชัน 15.6.015.6.02017191319132612814.13
Visual Studio 2017 เวอร์ชัน 15.6.115.6.12017191319132612814.13
Visual Studio 2017 เวอร์ชัน 15.6.215.6.22017191319132612814.13
Visual Studio 2017 เวอร์ชัน 15.6.315.6.32017191319132612914.13
Visual Studio 2017 เวอร์ชัน 15.6.415.6.42017191319132612914.13
Visual Studio 2017 เวอร์ชัน 15.6.615.6.62017191319132613114.13
Visual Studio 2017 เวอร์ชัน 15.6.715.6.72017191319132613214.13
Visual Studio 2017 เวอร์ชัน 15.7.115.7.12017191419142642814.14
Visual Studio 2017 เวอร์ชัน 15.7.215.7.22017191419142642914.14
Visual Studio 2017 เวอร์ชัน 15.7.315.7.32017191419142643014.14
Visual Studio 2017 เวอร์ชัน 15.7.515.7.52017191419142643314.14
Visual Studio 2017 เวอร์ชัน 15.9.115.9.12017191619162702314.16
Visual Studio 2017 เวอร์ชัน 15.9.415.9.42017191619162702514.16
Visual Studio 2017 เวอร์ชัน 15.9.515.9.52017191619162702614.16
Visual Studio 2017 เวอร์ชัน 15.9.715.9.72017191619162702714.16
Visual Studio 2017 เวอร์ชัน 15.9.1115.9.112017191619162703014.16
Visual Studio 2019 เวอร์ชัน 16.0.016.0.02019192019202750814.20
Visual Studio 2019 เวอร์ชัน 16.1.216.1.22019192119212770214.21
Visual Studio 2019 เวอร์ชัน 16.2.316.2.32019192219222790514.21
Visual Studio 2019 เวอร์ชัน 16.3.216.3.22019192319232810514.21
Visual Studio 2019 เวอร์ชัน 16.4.016.4.02019192419242831414.24
Visual Studio 2019 เวอร์ชัน 16.5.116.5.12019192519252861114.25
Visual Studio 2019 เวอร์ชัน 16.6.216.6.22019192619262880614.26
Visual Studio 2019 เวอร์ชัน 16.716.72019192719272911214.27
Visual Studio 2019 เวอร์ชัน 16.8.116.8.12019192819282933314.28
Visual Studio 2019 เวอร์ชัน 16.8.216.8.22019192819282933414.28
Visual Studio 2019 เวอร์ชัน 16.9.016.9.02019192819282991014.28
Visual Studio 2019 เวอร์ชัน 16.9.216.9.22019192819282991314.28
Visual Studio 2019 เวอร์ชัน 16.9.1716.9.172019192819282992114.28
Visual Studio 2019 เวอร์ชัน 16.9.1816.9.182019192819282992114.28
Visual Studio 2019 เวอร์ชัน 16.9.1916.9.192019192819282992314.28
Visual Studio 2019 เวอร์ชัน 16.11.216.11.22019192919293013314.29
Visual Studio 2019 เวอร์ชัน 16.11.816.11.82019192919293013814.29
Visual Studio 2019 เวอร์ชัน 16.11.916.11.92019192919293013914.29
Visual Studio 2019 เวอร์ชัน 16.11.1016.11.102019192919293014014.29
Visual Studio 2019 เวอร์ชัน 16.11.1116.11.112019192919293014114.29
Visual Studio 2019 เวอร์ชัน 16.11.1216.11.122019192919293014214.29
Visual Studio 2019 เวอร์ชัน 16.11.1616.11.162019192919293014514.29
Visual Studio 2019 เวอร์ชัน 16.11.1716.11.172019192919293014614.29
Visual Studio 2019 เวอร์ชัน 16.11.2116.11.212019192919293014714.29
Visual Studio 2019 เวอร์ชัน 16.11.2416.11.242019192919293014814.29
Visual Studio 2019 เวอร์ชัน 16.11.2716.11.272019192919293015114.29
Visual Studio 2019 เวอร์ชัน 16.11.3516.11.352019192919293015414.29
Visual Studio 2022 เวอร์ชัน 17.0.117.0.12022193019303070514.30
Visual Studio 2022 เวอร์ชัน 17.0.217.0.22022193019303070614.31
Visual Studio 2022 เวอร์ชัน 17.1.317.1.32022193119313110514.31
Visual Studio 2022 เวอร์ชัน 17.2.217.2.22022193219323132914.32
Visual Studio 2022 เวอร์ชัน 17.3.417.3.42022193319333163014.33
Visual Studio 2022 เวอร์ชัน 17.4.017.4.02022193419343193314.34
Visual Studio 2022 เวอร์ชัน 17.5.017.5.02022193519353221514.35
Visual Studio 2022 เวอร์ชัน 17.6.017.6.02022193619363253214.36
Visual Studio 2022 เวอร์ชัน 17.6.217.6.22022193619363253214.36.32532
Visual Studio 2022 เวอร์ชัน 17.6.417.6.42022193619363253514.36.32532
Visual Studio 2022 เวอร์ชัน 17.7.017.7.02022193719373282214.36.32543
Visual Studio 2022 เวอร์ชัน 17.8.017.8.02022193819383313014.38.33135
Visual Studio 2022 เวอร์ชัน 17.9.117.9.12022193919393352014.39.33520
Visual Studio 2022 เวอร์ชัน 17.9.617.9.62022193919393352314.39.33523
Visual Studio 2022 เวอร์ชัน 17.10.117.10.12022194019403381114.40.33811
Visual Studio 2022 เวอร์ชัน 17.10.1017.10.102022194019403381814.40.33818
Visual Studio 2022 เวอร์ชัน 17.11.017.11.02022194119413412014.41.34120
Visual Studio 2022 เวอร์ชัน 17.12.417.12.42022194219423443614.42.34436
Visual Studio 2022 เวอร์ชัน 17.13.017.13.02022พ.ศ. 248619433480814.43.34808
Visual Studio 2022 เวอร์ชัน 17.13.617.13.62022พ.ศ. 248619433481014.43.34810

ความเข้ากันได้

เอบีไอ

ABIของคอมไพเลอร์ Visual C++ มีการเปลี่ยนแปลงระหว่างการออกเวอร์ชันคอมไพเลอร์หลักมาโดยตลอด[ 57 ]โดยเฉพาะอย่างยิ่งในกรณีของคอนเทนเนอร์ STL ซึ่งขนาดของคอนเทนเนอร์มีความแตกต่างกันมากระหว่างการออกเวอร์ชันคอมไพเลอร์[ 58 ]ดังนั้น Microsoft จึงแนะนำไม่ให้ใช้อินเทอร์เฟซ C++ ที่ขอบเขตโมดูลเมื่อต้องการเปิดใช้งานโค้ดไคลเอ็นต์ที่คอมไพล์โดยใช้เวอร์ชันคอมไพเลอร์ที่แตกต่างกัน แทนที่จะใช้ C++ Microsoft แนะนำให้ใช้ อินเทอร์เฟซ C [ 59 ]หรือCOM [ 60 ]ซึ่งได้รับการออกแบบให้มี ABI ที่เสถียรระหว่างการออกเวอร์ชันคอมไพเลอร์

MSVC เวอร์ชัน 14.x ทั้งหมดมี ABI ที่เสถียร[ 61 ]และไบนารีที่สร้างด้วยเวอร์ชันเหล่านี้สามารถผสมกันได้ในลักษณะที่เข้ากันได้กับเวอร์ชันก่อนหน้า โดยคำนึงถึงข้อจำกัดต่อไปนี้:

  • เวอร์ชันของชุดเครื่องมือที่ใช้ต้องเท่ากับหรือสูงกว่าเวอร์ชันชุดเครื่องมือสูงสุดที่ใช้ในการสร้างไบนารีที่เชื่อมโยงใดๆ
  • เวอร์ชันของ MSVC Redistributable ต้องเท่ากับหรือสูงกว่าเวอร์ชันของชุดเครื่องมือที่ใช้โดยส่วนประกอบแอปพลิเคชันใดๆ
  • ไลบรารีแบบคงที่หรือไฟล์ออบเจ็กต์ที่คอมไพล์ด้วย /GL (การเพิ่มประสิทธิภาพโปรแกรมทั้งหมด) จะไม่สามารถใช้งานร่วมกันได้ในระดับไบนารีระหว่างเวอร์ชัน และต้องใช้ชุดเครื่องมือเดียวกันอย่างแน่นอน

ไลบรารีรันไทม์ C

Visual C++ มาพร้อมกับไลบรารีรันไทม์ C เวอร์ชันต่างๆ[ 62 ]ซึ่งหมายความว่าผู้ใช้สามารถคอมไพล์โค้ดของตนโดยใช้ไลบรารีใดก็ได้ที่มีอยู่ อย่างไรก็ตาม อาจทำให้เกิดปัญหาบางอย่างเมื่อใช้ส่วนประกอบต่างๆ ( DLL , EXE ) ในโปรแกรมเดียวกัน ตัวอย่างทั่วไปคือโปรแกรมที่ใช้ไลบรารี ที่แตกต่างกัน ผู้ใช้ควรใช้ C Run-Timeเดียวกันสำหรับส่วนประกอบทั้งหมดของโปรแกรม เว้นแต่จะเข้าใจถึงผลกระทบ Microsoft แนะนำให้ใช้ ไลบรารีการเชื่อมโยงแบบไดนามิก แบบมัลติเธรด (/MD หรือ /MDd ตัวเลือกคอมไพเลอร์) เพื่อหลีกเลี่ยงปัญหาที่อาจเกิดขึ้น[ 62 ]

โพสิกซ์

แม้ว่า CRT ของ Microsoft จะใช้ชุดย่อยขนาดใหญ่ของ อินเทอร์เฟซ POSIXแต่คอมไพเลอร์ Visual C++ จะแสดงคำเตือนทุกครั้ง ที่ มีการใช้ฟังก์ชันดังกล่าวโดยค่าเริ่มต้น เหตุผลก็คือมาตรฐาน C และ C++ กำหนดให้ต้องมีคำนำหน้าด้วยเครื่องหมายขีดล่างก่อนอินเทอร์เฟซที่กำหนดโดยการใช้งาน ดังนั้นการใช้ฟังก์ชันเหล่านี้จึงไม่เป็นไปตามมาตรฐาน[ 63 ]อย่างไรก็ตาม ระบบที่สอดคล้องกับ POSIX จริงๆ จะไม่ยอมรับชื่อที่มีเครื่องหมายขีดล่างเหล่านี้ และการปิดคำเตือนแทนจะพกพาได้ง่ายกว่า

ซี

แม้ว่าผลิตภัณฑ์จะมีต้นกำเนิดมาจาก IDE สำหรับ ภาษาการเขียนโปรแกรม Cแต่เป็นเวลาหลายปีที่การสนับสนุนคอมไพเลอร์สำหรับภาษานั้นเป็นไปตามมาตรฐาน C ฉบับดั้งเดิมเท่านั้น ซึ่งมีอายุตั้งแต่ปี 1989 แต่ไม่ใช่ มาตรฐาน C99ฉบับปรับปรุง และไม่มีแผนที่จะสนับสนุน C99 แม้กระทั่งในปี 2011 ซึ่งเป็นเวลากว่าสิบปีหลังจากที่ได้มีการเผยแพร่[ 64 ]

Visual C++ 2013 ได้เพิ่มการสนับสนุนคุณสมบัติต่างๆ ของ C99 ในโหมด C (รวมถึงตัวเริ่มต้นที่กำหนด ตัวอักษรผสม และ_Boolประเภท) [ 65 ]แม้ว่าจะยังไม่สมบูรณ์ก็ตาม[ 66 ] Visual C++ 2015 ได้ปรับปรุงการสนับสนุน C99 ให้ดียิ่งขึ้น โดยให้การสนับสนุนไลบรารีมาตรฐาน C99 อย่างเต็มที่ ยกเว้นคุณสมบัติที่ต้องใช้คุณสมบัติภาษา C99 ที่คอมไพเลอร์ยังไม่รองรับ[ 67 ]

การเปลี่ยนแปลงส่วนใหญ่จากการแก้ไขมาตรฐานC11 ยังไม่ได้รับการสนับสนุนโดย Visual C++ 2017 [ 68 ]ตัวอย่างเช่น การเลือกทั่วไปผ่าน_Genericคำหลักไม่ได้รับการสนับสนุนโดยคอมไพเลอร์และส่งผลให้เกิดข้อผิดพลาดทางไวยากรณ์[ 69 ]

ตัวประมวลผลล่วงหน้าได้รับการปรับปรุงใหม่ในปี 2018 โดยมีเป้าหมายคือ C11: [ 70 ]

การปฏิบัติตามมาตรฐาน C11 อย่างสมบูรณ์เป็นส่วนหนึ่งของแผนงานของเรา และการอัปเดตพรีโปรเซสเซอร์เป็นเพียงขั้นตอนแรกในกระบวนการนั้น_Genericฟีเจอร์ C11 นั้นไม่ได้เป็นส่วนหนึ่งของพรีโปรเซสเซอร์ ดังนั้นจึงยังไม่ได้นำมาใช้งาน เมื่อนำมาใช้งานแล้ว ผมคาดว่าฟีเจอร์นี้จะทำงานได้อย่างอิสระไม่ว่าจะเป็นการใช้ตรรกะพรีโปรเซสเซอร์แบบดั้งเดิมหรือแบบอัปเดตก็ตาม

_Genericการสนับสนุนได้ถูกกำหนดให้กับ MSVC ตั้งแต่เดือนกุมภาพันธ์ พ.ศ. 2563 [ 71 ]

ในเดือนกันยายน พ.ศ. 2563 ไมโครซอฟต์ประกาศว่าการสนับสนุนมาตรฐาน C11 และ C17 ใน MSVC จะมาถึงในเวอร์ชัน 16.8 [ 72 ]ซึ่งไม่ได้รวมถึงคุณสมบัติเสริม แต่ไมโครซอฟต์ระบุว่าพวกเขากำลังวางแผนที่จะเพิ่มการสนับสนุนสำหรับอะตอมิกและเธรดในภายหลัง ในเวอร์ชัน 17.5 ได้มีการเพิ่มการสนับสนุนอะตอมิกบางส่วน (เนื่องจากขาดการล็อกอะตอมิก/experimental:c11atomics ) และแบบทดลอง (หมายความว่าซ่อนอยู่หลังแฟล็กคอมไพเลอ ร์) [ 73 ]และในเวอร์ชัน 17.8 ได้มีการเพิ่มการสนับสนุนเธรด ซึ่งคราวนี้ไม่ได้อยู่หลังแฟล็กคอมไพเลอร์[ 74 ] [ 75 ]

ซี++

ด้วยการตั้งค่าเริ่มต้น MSVC จะไม่ทำการค้นหาชื่อแบบสองเฟส ซึ่งป้องกันไม่ให้ระบุรหัสที่ไม่ถูกต้องจำนวนมาก การตรวจสอบส่วนใหญ่จะถูกเลื่อนไปยังการสร้างอินสแตนซ์เทมเพลต เวอร์ชันล่าสุดแก้ไขพฤติกรรมนี้ แต่จำเป็นต้องเปิดใช้งานโดยใช้ตัวเลือกบรรทัดคำ/permissive-สั่ง[ 76 ]

แผนกต้อนรับ

BYTEในเดือนกุมภาพันธ์ พ.ศ. 2532 ได้กล่าวว่าการสนับสนุน OS/2 ของ Microsoft C 5.1, QuickC สำหรับการพัฒนาแบบโต้ตอบ และดีบักเกอร์ CodeView นั้น"ยอดเยี่ยม" แม้ว่า Watcom Cจะสร้างโค้ดที่เร็วกว่าเล็กน้อย แต่นิตยสารก็กล่าวว่านักพัฒนา "อาจยังคงชอบเครื่องมือที่เป็นมิตรและมีประสิทธิภาพมากกว่าของ Microsoft" [ 77 ]

อ่านเพิ่มเติม

  • จอห์นสัน, ไบรอัน (8 สิงหาคม 2547). "การสร้างแอปพลิเคชัน Win32 โดยใช้ Visual C++ 2005 Express" . บล็อก Startup Developer ของไบรอัน จอห์นสัน . ไมโครซอฟต์ – ผ่านทางคลังเอกสารของไมโครซอฟต์
  • สปริงฟิลด์, จิม (25 กันยายน 2015). "การฟื้นฟูคอมไพเลอร์ C/C++ ของ Microsoft" . บล็อกทีม C++ . ไมโครซอฟต์.
  • เว็บไซต์อย่างเป็นทางการ
  • เครื่องมือและคุณสมบัติของ C++ ใน Visual Studio เวอร์ชันต่างๆ
  • เครื่องมือสร้าง C++ ของ Microsoft
  • C9::GoingNativeบนMicrosoft Channel 9
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Microsoft_Visual_C%2B%2B&oldid=1359570789 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไมโครซอฟต์ วิชวล ซี++

Microsoft Visual C++ ( MSVC ) เป็นคอมไพเลอร์สำหรับภาษาโปรแกรมC , C++ , C++/CLIและC++/CX จากMicrosoft MSVC เป็นซอฟต์แวร์กรรมสิทธิ์เดิมทีเป็นผลิตภัณฑ์แบบสแตนด์อโลน...

ประวัติศาสตร์

โปรแกรมคอมไพเลอร์รุ่นก่อนหน้า Visual C++ มีชื่อว่า Microsoft C/C++ นอกจากนี้ยังมี Microsoft QuickC 2.5 และ Microsoft QuickC for Windows 1.

เวอร์ชัน 16 บิต

Microsoft C 1.0 ซึ่งพัฒนามาจาก Lattice C เป็นผลิตภัณฑ์ภาษา C ตัวแรกของ Microsoft ในปี 1983 และไม่เป็นไปตามมาตรฐาน K&R C C 2.0 เพิ่มการรองรับโมเดลขนาดใหญ่ ทำให้สามารถรองรับได้ถึง 1 MiB สำหรับทั้ง Code Segment และ Data Segment [ 5 ] C 3.

เฉพาะเวอร์ชัน 32 บิตเท่านั้น

Visual C++ 1.0 (ชื่อเดิม: Visual C++ 32-bit Edition) ที่วางจำหน่ายในปี 1993 เป็นเวอร์ชันแรกสำหรับ การพัฒนา 32 บิต (และต้องใช้ Windows NT 32 บิตเป็นโฮสต์) สำหรับสถาปัตยกรรม Intel 386 [ 14 ] แม้ว่าจะวางจำหน่ายในขณะที่ เวอร์ชัน 16 บิต 1.