Bạn nghĩ mình ko biết làm thế nào để C/C++ viết cross platform được hay sao , FileZilla, Google Earth, Opera là 1 trong những điển hình chương trình dùng C/C++ và QT4 để viết cross platform. Chưa bao giờ có hứng thú với Java
C/C++ trong QT không phải là C chuẩn, một điều nữa, C/C++ cũng phải thông qua QT để có thể cross platform, tương tự như Java thông qua Virtual machine để cross platform. QT cũng dùng cách tiếp cận như Java đã dùng. Bạn nói C/C++ như trên là không chính xác.
Nói thật là bạn đếch hiểu cái QT là gì thì đừng viết ra đây người ta cười cho nhé. Thứ 2 là tui học lập trình C/C++ tức là cấm tui ko học gtk, cấm tui ko học QT, cấm tui ko học WxWidget, hay là lúc nói học C tui phải liệt kê những cái đó ra ? Bạn có tin tui viết 1 phần mềm đơn giản, dùng chính xác Iso C của bạn nói ra ( mà ko dùng bất cứ thư viện ngoài nào ) , chạy đuợc trên Unix/Linux/Windows ko.
Ơ thế này nhé, nghĩa là anh cũng phải dùng một compiler hỗ trợ cross platform đúng không? cái quan trọng tôi muốn nói là anh dùng compiler nào để biên dịch chứ không phải là anh dùng cú pháp C chuẩn hay Cabc nào đó để viết. Vấn đề là sau khi biên dịch ra chương trình nó ở dạng nào để có thể cross platform.
Bắt đầu giở giọng bắt bẻ . Truớc tiên định nghĩa cross platform. Cross Platform có 2 dạng, 1 là 1 binary chạy nhiều platform, 2 là cùng 1 pm nhưng đuợc build ở nhiều binary với mỗi platform khác nhau. Trong thế giới của x-platform, thì Java là cái lòi ra duy nhất, vì nó ko cần binary riêng cho từng system, chứ ko phải như bạn nghĩ, X-platform tức là nó cứ phải 1 cái phần mềm copy vào máy nào cũng chạy đuợc Windows Có MinGW, Linux và Unix có Gcc, đó là những thứ để biên dịch C. Đối với bất cứ system nào, kể cả tương lai ( cũng như Java thôi ), chỉ cần nó có biên dịch C, thì chương trình của tôi có thể biên dịch được. War chả giải quyết vấn đề gì, đầu tiên bạn bắt bẻ C/C++ ko viết X được, sau đó bạn tiếp tục nói QT4 ko phải C++ chuẩn, rồi cuối cùng bạn hỏi biên dịch ra cái gì , vậy cuối cùng ý bạn là muốn gì đây ?
Trước hết và đầu tiên C/C++ k bao giờ có thể Cross. QT4 k phải là C chuẩn là trong cú pháp sử dụng khi viết ct không tuân thủ hoàn toàn chính xác như đặc tả chuẩn của C(cái này trong website của QT cũng có đề cập ). Và sau này.... nhờ ý tưởng dùng 1 thứ trung gian để giúp cho "ai" cũng hiểu nhằm biên dịch ra chương trình... chạy "đâu cũng được", nên đã xuất hiện ra các compiler Cross platform, giúp C/C++ cũng như Java có thể "mềm dẻo" với tất cả các HĐH. Học kỹ thuật thì phải chính xác, tôi quen vậy rồi chứ không phải là bắt bẻ, thử hỏi code 1 ct mà sai 1 dấu chấm phẩy cũng k chạy (chưa kể các lỗi luận lý), phải chính xác 100%.
Nếu không dùng bất kỳ compiler cross-platform nào để biên dịch thì cho dù có nặn hết mụn trên mặt ct cũng chưa chạy đâu nhé. Tôi cũng nói lại 1 câu: Compiler C cũ hỗ trợ riêng biệt từng HĐH, QT nói nôm na có công gom chúng lại thành 1 cái "compiler đa năng" thế thôi.. Còn những vấn đề hiểu biết tôi k thích bàn tới, và cũng nói luôn những cái tôi biết chưa chắc anh biết và ngược lại (tất nhiên), đừng tuyên bố khập khiễng như thế. Thân !
Tôi chịu thua rồi mà . Hay tôi nói thế này nhé, bất cứ thằng nào, mà nói được cái câu C ko thể viết cross-platform được, thì nó chả biết cái gì cả, tôi chắc chắn là như thế đấy Edit: Cái kịch bản flame-war này giống mọi khi quá , ở các diễn đàn về lập trình, khi có 1 ng nói 1 NNLT ko thể làm gì được là sẽ có chửi hội đồng , quen thói thế rồi . Thôi thì mình calm-down...
Vậy thì mình mới đố bạn chứ, tại vì bạn nói nó chạy ra kết quả giống nhau nên mình lấy 1 vd cho bạn xem thôi,cảm thấy hay hay mới đố
Thanks anh Funnnny đã chỉ giáo. . ___________Auto Merge________________ . Hai anh này tranh luận chuyện gì mà gay gắt quá, nghe chẳng hiểu gì, cứ crossplatform với QT loạn cả lên.
Cho em hỏi chút về cách viết code của wed, tại mới tập nên không rành::)::)::). Mình muốn viết vào giữa cái wed này thì viêt thế nào vậy mấy anh?
Cho tớ hỏi bài này chút, 1 bài VB bài nhỏ thôi : Cho 2 biến sLabel, sDriveLetter đều là string sLabel được gán giá trị bất kì. Hãy trả lại sDriveLetter về giá trị là chữ cái của ổ (trong my computer) mà có label là sLabel và trả về giá trị rỗng nếu không tìm thấy ổ nào có label (tên ổ) là sLabel Ví dụ cho dễ hiểu nhé: Trong máy có 4 ổ (3 partition của ổ cứng là C:, D:, E: + 1 ổ quang là F:) ổ C là SYSTEM, ổ D là SETUP, ổ E là STORE, ổ F là WINXP Nhập giá trị cho biến sLabel, giả sử mình nhập vào là SETUP chẳng hạn. Hãy cho ra giá trị của biến sDriveLetter là chữ cái của ổ (trong My computer) mà có label (tên ổ) là sLabel (ở đây là SETUP), ở đây theo như ví dụ ở trên thì giá trị sDriveLetter ở đây là D vì sLabel mình đã nhập là SETUP Mình nói thế có khó hiểu quá không nhỉ
http://www.ezzylearning.com/tutorial.aspx?tid=0068504 hoặc search trong MSDN về DriveInfo PHP: Imports System Imports System.IO Class Test Public Shared Sub Main() Dim allDrives() As DriveInfo = DriveInfo.GetDrives() Dim d As DriveInfo For Each d In allDrives Console.WriteLine("Drive {0}", d.Name) Console.WriteLine(" File type: {0}", d.DriveType) If d.IsReady = True Then Console.WriteLine(" Volume label: {0}", d.VolumeLabel) Console.WriteLine(" File system: {0}", d.DriveFormat) Console.WriteLine( _ " Available space to current user:{0, 15} bytes", _ d.AvailableFreeSpace) Console.WriteLine( _ " Total available space: {0, 15} bytes", _ d.TotalFreeSpace) Console.WriteLine( _ " Total size of drive: {0, 15} bytes ", _ d.TotalSize) End If Next End Sub End Class
sorry :p hình như mình nhầm tên cái ngôn ngữ lập trình này :p cái ngôn ngữ mà nó có cái đoạn code kiểu như này này Mã: -- Confirm that the installation executable should be launched. result = Dialog.Message("Confirm", "Are you sure you would like to install now?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1); -- If the user clicked the Yes button. if (result == IDYES) then -- Run the installation file. File.Run("AutoPlay\\Docs\\setup.exe", "", "", SW_SHOWNORMAL, false); -- Check to see if an error occurred when launching the file. error = Application.GetLastError(); -- If an error occurred, display an error message to the user. if (error ~= 0) then Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1); end end hoặc như thế này Mã: -- Set this value to the expected serial number of the -- drive that your application will run from. Expected_Serial = 123456789; -- Gets the source drive's current serial number Current_Serial = Drive.GetInformation(_SourceDrive).SerialNumber; -- Compares the two serials and, if different, terminates the app. if (Current_Serial ~= Expected_Serial) then Dialog.Message("ERROR", "This is an unauthorized copy of the original application, and will shut down.", MB_OK, MB_ICONSTOP); Application.Exit(); end phiền bạn lần nữa nhé : à mà hình như cái này là 1 đoạn script thì phải
ui ... ngôn ngữ gì từa tựa C mà lại có if then end thế -.-' đúng là đều xài chung windows api là GetLogicalDrives và GetLogicalDriveStrings, HieuNM tìm cách sử dụng win32 api trong ngôn ngữ của cậu xem, mấy cái này mình chưa học ...
À, thực ra nó là 1 đoạn script của chương trình Autoplay Media Studio Mình định làm 1 cái code file auto tự chạy tự giải nén nhưng đến đoạn này thì bí Thấy nó có liên quan đến lập trình nên vào đây hỏi