banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Loạn quan điểm về sự khác nhau giữa C# và C++?  XML
  [Programming]   Loạn quan điểm về sự khác nhau giữa C# và C++? 10/07/2007 01:08:37 (+0700) | #1 | 70108
sratch
Member

[Minus]    0    [Plus]
Joined: 09/07/2007 13:27:34
Messages: 58
Offline
[Profile] [PM]
Xin chào các bạn mình là thành viên mới của diễn đàn,rất mong được các bạn giúp đỡ.Mình đã xem các bài viết về sự so sánh giữa C# và C++ nhưng thấy có rất nhiều quan điểm trái ngươc nhau(không biết có phải tại cái bộ não kém cỏi của mình không),sau đây là một vài ý kiến mình biết được:
+C#(C++++ smilie) ) kế thừa được sức mạnh của C++ và được tích hợp nhiều điểm tiến bộ.
+C#, các ngôn ngữ thuộc .net và java là các ngôn ngữ mà cần sử dụng framework, chúng thường được thiết kế để ko can thiệp sâu được vào hệ thống, chúng có một hệ thống class rất lớn phục vụ cho lập trình ứng dụng.
VC++ ko sử dụng framework, nó có một số bộ thư viện như MFC .. trợ giúp cho việc lập trình nhanh chóng và dễ dàng hơn, trực tiếp hoặc gián tiếp sử dụng api của windows. Do sử dụng trực tiếp api window, việc ngôn ngữ C nói chúng có thể thao tác trực tiếp với bộ nhớ, khả năng chèn mã lệnh asm nên làm cho vc++ có khả năng can thiệp rất sâu vào hệ thống
Điều mình thấy trái ngựoc ở đây chính là việc can thiệp sâu vào hệ thống,theo như quan điểm 1 thì C# kế thừa đươc sức mạnh của C++ nhưng ở quan điểm 2 thì cho ta thấy C++ can thiệp sâu được vào hệ thống còn C# thì không can thiệp sâu vào hệ thống.Liệu có phải C# được thiết kế để không can thiệp sâu vào hệ thống không? và 2 quan điểm trên liệu có phải là trái ngươcj nhau không?.Mình rất mong nhận được ý kiến của các bạn về vấn đề này
[Up] [Print Copy]
  [Question]   Loạn quan điểm về sự khác nhau giữa C# và C++? 10/07/2007 02:05:22 (+0700) | #2 | 70117
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Bạn coi thông tin do bà con trên Internet cung cấp xem có dễ hiểu ko:
C++: http://en.wikipedia.org/wiki/C++
C#: http://en.wikipedia.org/wiki/C_Sharp

Có vài điều cần lưu ý tìm hiểu kĩ:
- Khái niệm framework: MFC là tập hợp các class libraries, hình thành một dạng application framework giúp xác định 1 ứng dụng xây dựng trên nó có những thành phần nào; C# hoạt động trên .NET framework phức tạp hơn vì bên cạch application framework, nó còn nhiều thành phần khác quản lý hoạt động của ứng dụng.
- VC++ hay Visual C++ thường được mọi người gọi là C++ trên Windows, dạng visual programming (lập trình trực quan), kéo thả các đối tượng giao diện và thực hiện các Windows message handler. Không lý do gì nó ko sử dụng framework.
- Mức độ can thiêp vào hệ thống: cả C++, C# đều có thể can thiệp các tính năng của hệ thống.
Hibernating
[Up] [Print Copy]
  [Question]   Loạn quan điểm về sự khác nhau giữa C# và C++? 10/07/2007 02:44:17 (+0700) | #3 | 70122
sratch
Member

[Minus]    0    [Plus]
Joined: 09/07/2007 13:27:34
Messages: 58
Offline
[Profile] [PM]
Cảm ơn anh đã trả lời.Anh ơi như vậy là việc can thiệp vào hệ thống thì C# hay C++ thì cũng như nhau.Em muốn hỏi thêm là C/C++(không phải là VC++) thì có thể can thiệp sâu vào hệ thông được không?
[Up] [Print Copy]
  [Question]   Loạn quan điểm về sự khác nhau giữa C# và C++? 10/07/2007 03:25:11 (+0700) | #4 | 70132
[Avatar]
secmask
Elite Member

[Minus]    0    [Plus]
Joined: 29/10/2004 13:52:24
Messages: 553
Location: graveyard
Offline
[Profile] [PM] [WWW]
C# có cung cấp 1 cách thức để viết code theo dạng unmanaged code, nếu viết code theo dạng đó bạn cũng có thể làm được các công việc như C++ nhưng đây được coi là tính năng mở rộng sự tương thích qua lại giữa C# và C++, người ta chọn ko C# để làm 1 project dưới dạng toàn unmanaged code vì nó không tận dụng được thế mạnh của C# (một ngôn ngữ mềm dẻo, dễ học , dễ dùng + chay trên .net framework).

C/C++(không phải là VC++) thì có thể can thiệp sâu vào hệ thông được không? 

hệ thống ở đây là hệ thống gì ?
[Up] [Print Copy]
  [Question]   Loạn quan điểm về sự khác nhau giữa C# và C++? 10/07/2007 22:35:36 (+0700) | #5 | 70293
[Avatar]
eyesdog
Elite Member

[Minus]    0    [Plus]
Joined: 18/01/2002 06:54:01
Messages: 94
Offline
[Profile] [PM]
Chương trình viết bằng VC, C++ nói chung sẽ chạy trực tiếp trên hệ điều hành, còn C#, VB.NET thì sẽ chạy thông qua .NET Framework. Để dễ hiểu, chỉ cần nhìn một thằng thì làm việc trực tiếp còn một thằng cần thêm một ông ngỗi giữa làm thông ngôn, cái gì mạnh hơn có lẽ là đã rõ, còn trong trường hợp cụ thể việc can thiệp sâu hay không sâu vào hệ điều hành phụ thuộc vào người viết( Mấy ông quan to làm việc qua phiên dịch vẫn có thể tác động đến đối tượng mạnh hơn mấy ông học đại học ngoại ngữ ra làm việc trực tiếp)
[Up] [Print Copy]
  [Question]   Re: Loạn quan điểm về sự khác nhau giữa C# và C++? 15/07/2007 16:05:13 (+0700) | #6 | 71326
nccnm
Member

[Minus]    0    [Plus]
Joined: 23/09/2004 08:34:51
Messages: 6
Offline
[Profile] [PM]
C/C++ can thiệp sâu vào hệ thống?
Còn C# can thiệp nông?
Cho mình hỏi nông sâu ở đây khác nhau ở chỗ nào?

[Up] [Print Copy]
  [Question]   Loạn quan điểm về sự khác nhau giữa C# và C++? 15/07/2007 21:14:15 (+0700) | #7 | 71344
[Avatar]
KyNam
Member

[Minus]    0    [Plus]
Joined: 15/07/2007 01:37:35
Messages: 74
Offline
[Profile] [PM] [WWW]
unmanaged code và manager code có 1 chỗ khác nhau mà làm cho managed code không thể dùng để làm nhiều thứ , chẳng hạn viết driver , global hook , injection ... :
+ khi gọi 1 unmanaged assembly , assembly chạy trực tiếp qua hàm main() hoặc dllmain() hoặc 1 cái tương tự
+ khi gọi 1 managed assembly , .NET runtime ( mscorlib.dll ) sẽ chạy đầu tiên , tiếp đó nó mới gọi .NET assembly
[Up] [Print Copy]
  [Question]   Loạn quan điểm về sự khác nhau giữa C# và C++? 17/07/2007 10:09:22 (+0700) | #8 | 71745
[Avatar]
ngoalong
HVA Friend

Joined: 22/03/2003 04:33:38
Messages: 111
Offline
[Profile] [PM]

sratch wrote:
.
VC++ ko sử dụng framework, nó có một số bộ thư viện như MFC .. trợ giúp cho việc lập trình nhanh chóng và dễ dàng hơn, trực tiếp hoặc gián tiếp sử dụng api của windows. 


Bổ sung thêm chút ý này:

VC++ 6.0 thì sử dụng API hoặc MFC(các lớp bọc API) là chuẩn xác nhưng trên các bộ VS2005 thì VC++ 8.0 lại bao gồm cả cái CLR hay CLI cú pháp và ngôn ngữ là C++ nhưng lại lập trình trên .NET Framework. Một ứng dụng MFC có thể chứa 1 Form được viết bởi CLI vậy thì nói cho cùng VC++ sử dụng được cả .NET Framework. smilie Vì vậy ta cần phân biệt ứng dụng đó được phát triển trên MFC hay trên .NET.

Tôi thấy .NET cũng có các cơ chế mở để can thiệp sâu vào hệ thống nhưng chắc chắn sẽ không sâu và mạnh bằng sự dụng các hàm API hệ thống <-- cái này thì dùng C/C++ là mạnh nhất. MFC cũng không dựng sẵn các lớp cho phép người dùng can thiệp sâu vào hệ thống nhưng khi lập trình VC++ dùng MFC thì việc gọi các hàm API hay các lớp MFC là dễ như nhau nên sức mạnh thật sự của nó là các hàm API sử dụng các thư viện CRT trong windows. Thư mục các DLL này trong VC8 nằm ở //Windows/WinSxS/
[Up] [Print Copy]
  [Question]   Loạn quan điểm về sự khác nhau giữa C# và C++? 17/07/2007 11:09:58 (+0700) | #9 | 71760
[Avatar]
secmask
Elite Member

[Minus]    0    [Plus]
Joined: 29/10/2004 13:52:24
Messages: 553
Location: graveyard
Offline
[Profile] [PM] [WWW]
thực ra tại tui quen nói VC++ thì là bản VC++ ko có .NET rồi, khi nào muốn nói VC++ chạy trên .NET thì nói rõ là VC++.NET ra. Cái MFC là framework là đúng, nhưng tui trước giờ rất ghét dùng nó nên toàn gọi nó là thư viện ko à , cảm ơn các bác đã sửa.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|