Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Lỗi MessageBox

  1. #1
    Ngày gia nhập
    08 2008
    Bài viết
    20

    Mặc định Lỗi MessageBox

    Mình sử dụng VS 2k5, vào tạo 1 project mới, chọn MFC Application, kẻ thêm 1 button và nhấp đúp vào button đó để viết code
    Code:
    MessageBox("a");
    Nhưng chương trình báo lỗi
    Code:
    error C2664: 'CWnd::MessageBoxW' : cannot convert parameter 1 from 'const char [2]' to 'LPCTSTR'
    Giúp mình với

  2. #2
    Ngày gia nhập
    12 2007
    Bài viết
    28

    Bạn thử viết
    Code:
    MessageBox(_T("a"), MB_OK);
    thử xem?
    // Nếu mình nhớ không nhầm thì khác với VC++, trên VS2005 phải viết MessageBox(_T("a")); nó mới chịu (kiểu LPCTSTR). Viết như vậy trên VC++ cũng được, nên mình chỉ viết kiểu đó thôi.
    Đã được chỉnh sửa lần cuối bởi blackpawn : 22-10-2008 lúc 07:40 PM. Lý do: Thêm tag code :D

  3. #3
    Ngày gia nhập
    08 2008
    Bài viết
    20

    OH được rồi, cám ơn bạn nhiều lắm nhe, nhưng tại sao lại như vậy vậy bạn, còn nhiều cái đổi khác lắm phải không. Mình đã làm đúng như trong sách thế mà nhiều ví dụ nó vẫn báo lỗi tương tự như vậy.Ví dụ
    Code:
    #include <afxwin.h>
    class CMyApp:public CWinApp
    {
    public:
    	BOOL InitInstance();
    };
    class CMyWin:public CFrameWnd
    {
    	CMyWin();
    };
    CMyApp theApp;
    BOOL CMyApp::InitInstance()
    {
    	m_pMainWnd=new CMyWin;
    	m_pMainWnd->ShowWindow(m_nCmdShow);
    	m_pMainWnd->UpdateWindow();
    	return true;
    }
    CMyWin::CMyWin()
    {
    	Create(NULL,"Simple");
    }
    Mình tạo 1 Win32 Project và thêm 1 file .cpp có nội dung code trên nhưng vẫn không chạy. Nó báo lỗi
    Code:
    CFrameWnd::Create' : cannot convert parameter 2 from 'const char [7]' to 'LPCTSTR'
    là sao vậy bạn?

    Còn cái nào thay mà VS 2005 thay đổi so với VS C++ 6.0 bạn cho mình biết với...

  4. #4
    Ngày gia nhập
    08 2008
    Bài viết
    20

    Mình có chương trình này
    Code:
    #include <afxwin.h>
    class CMyApp:public CWinApp
    {
    public:
    	BOOL InitInstance();
    };
    CMyApp theApp;
    BOOL CMyApp::InitInstance()
    {
    	AfxMessageBox(_T("Chuong trinh don gian"));
    	return true;
    }
    Chạy thì OK, nhưng khi sửa AfxMessageBox thành MessageBox thì nó báo lỗi:
    Code:
    error C2660: 'MessageBoxW' : function does not take 1 arguments
    Là sao vậy bạn?

  5. #5
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Vì application bạn tạo là unicode nên nó bắt các thông số chuỗi truyền vô phải là short* chứ không phải char*, bạn khắc phục bằng cách ở mỗi chuỗi truyền vô thì sửa lại như blackpawn nói, thêm _T() vào

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mặc định Lỗi MessageBox

    Nếu là 2k5 thì với 1 chuỗi bạn có thể dùng L"chuỗi";
    Nếu để cast cho 1 string thì bạn dùng (LPCTSTR) m_string;

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    MessageBoxW có 5 parameter lận, bạn xem MSDN sẽ rõ.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  8. #8
    Ngày gia nhập
    08 2008
    Bài viết
    20

    Mình cũng hiểu phần nào rồi, cám ơn sự nhiệt tình của các bạn!

Các đề tài tương tự

  1. Hiện thị MessageBox trong asp.net?
    Gửi bởi nguyenthuan111 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 25
    Bài viết cuối: 28-07-2012, 10:50 PM
  2. hiển thị messagebox trong asp.net?
    Gửi bởi b0yt4l3nt9z trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 2
    Bài viết cuối: 17-01-2011, 11:23 PM
  3. messagebox trong C#. Lỗi.....?
    Gửi bởi sokhanh1981 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 06-09-2010, 11:49 PM
  4. Lập Trình ASM ,in ra màn hình MessageBox
    Gửi bởi Cpro trong diễn đàn Thắc mắc chung
    Trả lời: 23
    Bài viết cuối: 17-02-2010, 04:22 PM
  5. MessageBox in ra kiểu số
    Gửi bởi honey trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 10
    Bài viết cuối: 13-11-2008, 10:38 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn