Hỏi & đáp lập trình

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi canh en buon, 23/5/07.

  1. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    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
     
  2. The Greek Warrior

    The Greek Warrior T.E.T.Я.I.S

    Tham gia ngày:
    28/4/02
    Bài viết:
    561
    Nơi ở:
    Caldeum
    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.
     
  3. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    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.
     
  4. The Greek Warrior

    The Greek Warrior T.E.T.Я.I.S

    Tham gia ngày:
    28/4/02
    Bài viết:
    561
    Nơi ở:
    Caldeum
    Ơ 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.
     
  5. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    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 :-j
    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ì :-j, vậy cuối cùng ý bạn là muốn gì đây ?
     
  6. The Greek Warrior

    The Greek Warrior T.E.T.Я.I.S

    Tham gia ngày:
    28/4/02
    Bài viết:
    561
    Nơi ở:
    Caldeum
    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%.
     
  7. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Bạn nói được câu này thì tôi xin chịu thua
    Tôi chỉ quote lại câu tôi đã nói
     
  8. The Greek Warrior

    The Greek Warrior T.E.T.Я.I.S

    Tham gia ngày:
    28/4/02
    Bài viết:
    561
    Nơi ở:
    Caldeum
    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 !
     
  9. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Tôi chịu thua rồi mà :-j.
    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 :-j. Thôi thì mình calm-down...
     
  10. The Greek Warrior

    The Greek Warrior T.E.T.Я.I.S

    Tham gia ngày:
    28/4/02
    Bài viết:
    561
    Nơi ở:
    Caldeum
    Mình cũng phải Calm down, không thôi lại có người bảo là mình thích bắt bẻ.
     
  11. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    453
    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 đố
     
  12. kiennghe

    kiennghe Youtube Master Race

    Tham gia ngày:
    23/12/08
    Bài viết:
    19
    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.
     
  13. Rubin_Hot

    Rubin_Hot Dragon Quest

    Tham gia ngày:
    2/5/06
    Bài viết:
    1,421
    Nơi ở:
    Sao chổi
    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?


    [​IMG]
     
  14. HieuNM

    HieuNM Mayor of SimCity

    Tham gia ngày:
    3/3/07
    Bài viết:
    4,078
    Nơi ở:
    H.U.S.T
    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à DsLabel mình đã nhập là SETUP

    Mình nói thế có khó hiểu quá không nhỉ :-s
     
  15. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Cơ bản nó chạy giống nhau, tuy nhiên cả 2 cái đều sai thôi =))
     
  16. blaster6220119

    blaster6220119 Donkey Kong

    Tham gia ngày:
    14/3/06
    Bài viết:
    430
    Nơi ở:
    :-"
    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
     
  17. HieuNM

    HieuNM Mayor of SimCity

    Tham gia ngày:
    3/3/07
    Bài viết:
    4,078
    Nơi ở:
    H.U.S.T
    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 :-s
     
  18. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Đều là dùng Windows API cả thôi mà :)
     
  19. blaster6220119

    blaster6220119 Donkey Kong

    Tham gia ngày:
    14/3/06
    Bài viết:
    430
    Nơ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 ...
     
  20. HieuNM

    HieuNM Mayor of SimCity

    Tham gia ngày:
    3/3/07
    Bài viết:
    4,078
    Nơi ở:
    H.U.S.T
    À, 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

    [​IMG]

    [​IMG]
     

Chia sẻ trang này