-
26-07-2010, 11:52 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
tạo một cửa sổ ứng dụng nhưng bị lổi ?
mình mới bắt đầu làm quen với lập trình win32 .đang thử tạo một cửa sổ ứng dụng đơn giản tuy nhiên lại bị lổi. mọi người giúp mình kt xem tn.
code:
Mã:#include<windows.h> HINSTANCE hInst; //khai bao the hien cua ung dungHWND wndHandle; //khai bao con tro quan li cua so ung dungchar vidu[]="vidu1"; //khai bao hambool initWindow(HINSTANCE hinstance);LRESULT CALLBACK MsgProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){//khoi tao ung dung if(!initWindow(hInstance)) return false; return 0;} bool initWindow(HINSTANCE hinstance){ WNDCLASSEX wd; wd.cbSize=sizeof(WNDCLASSEX); wd.hbr wd.cbClsExtra=0; wd.cbWndExtra=0; wd.hCursor=LoadCursor(NULL,IDC_ARROW); wd.hIcon=0; wd.style=CS_HREDRAW|CS_VREDRAW; wd.lpfnWndProc=(WNDPROC)MsgProc; wd.lpszMenuName=NULL; wd.lpszClassName=vidu; wd.hIconSm=0;//con tro toi du lieu bieu tuong cua doi tuong wd.hInstance=hinstance; //con tro tro toi instance cua ung dung RegisterClassEx(&wd); wndHandle=CreateWindow( vidu, "mnmf", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinstance, NULL); //kiem tra xem qua trinh tao cua so co hoan thanh ko if(!wndHandle) return false; //the hien cua so len man hinh ShowWindow(wndHandle,SW_SHOW); UpdateWindow(wndHandle); return true; }
- error C2440: '=' : cannot convert from 'char [6]' to 'LPCWSTR' e:\tai lieu\c++\project\window\window\cuaso.cpp 33 window
- error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'char [6]' to 'LPCWSTR' e:\tai lieu\c++\project\window\window\cuaso.cpp 50 window
mình làm như ví dụ trong ebook nhưng nó lại báo lổi như vậy. mình đang dùng vs2008
hàm xử lí thông điệp mình chưa viết. mới test thử thấy báo lổi ở hàm này nên đưa lên ae xem giúpView more random threads:
- Làm thế nào chương trình vẫn hoạt động khi MessageBox được show lên?
- Phân biệt _cdecl và _stdcal
- Phân biệt giữa mô hình xử lý dùng multithread và dùng nhiều process.
- No symbols are loaded for any call stack frame. The source code cannot be displayed.
- Cách thay đổi 1 vùng nhớ bằng hàm VirtualProtect
- Cần tìm người viết auto bot cho game .
- Hook keyboard ko chạy khi chơi game full screen(Warcraft)
- Lấy handle của control khác khi biết class và instance?
- So sánh kiểu dữ liệu trong C Native và VC++ khi lập trình APIs
- Lập trình Hook với Visual C++
-
26-07-2010, 05:49 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
mấy cái char bạn đổi thành wchar_t và thêm chữ L trước các chuỗi. Ví dụ bạn khai báo char *vidu = "vidu1"; thì đổi thành wchar_t *vidu = L"Vidu1";
Nguyên nhân là vì bạn dùng phiên bản VC++ mới nên mặc định nó hỗ trợ unicode trong các hàm API (mà bạn lại dùng ANSCII)
-
26-07-2010, 06:40 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
mình đả sửa lại như bạn nói thì giải quyết đc vấn đề đó tuy nhiên lại vẩn còn có lổi
+ Error 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup MSVCRTD.lib window
+ Error 2 fatal error LNK1120: 1 unresolved externals E:\TAI LIEU\c++\project\window\Debug\window.exe window
bạn có thể hướng dẩn giúp mình với
-
26-07-2010, 06:44 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi nguyen my
Bạn chon win32project --->winform(hay đại loại như thế) --->(chọn empty project nha)--->OK
-
26-07-2010, 06:46 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
cái này mình chọn empty project rồi mà.
-
27-07-2010, 03:14 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
mọi người giúp mình với. mình đag rất cần
-
27-07-2010, 03:17 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
mình tạo proj mới và paste code của bạn vô thì không bị lỗi báo "không có hàm main nữa"(2 cái lỗi mà bạn nói ) .Chỉ có lỗi về bộ nhớ thôi(runtime error)
-
27-07-2010, 03:32 PM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
thank cậu nha. giờ tạo project mới nó lại chạy tốt. ko hiểu sao nữa. nản quá mất thôi
-
27-07-2010, 04:35 PM #9Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Project -> [windows] Properties -> configuration properties -> Linker ->advanced->entry point đặt là _tWinMain
-
27-07-2010, 07:05 PM #10Silver member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi nguyen my
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...