Lạ nhỉ, mình biên dịch trên vc6 và vc2k5 ko có lỗi, vc++ express thì mình chưa thử. Bạn đem hết cả project lên đây đi, mấy lỗi linker này thường phải có cả project mới dò được.
Visual C++ Code:
#include <windows.h> LRESULT CALLBACK XuLyMessage(HWND,UINT,WPARAM,LPARAM); static TCHAR szAppName[] = TEXT("ViDu"); int WINAPI WinMain(HINSTANCE hInst, HINSTANCE PrevInst, LPSTR lpszCmdLine, int nCmdShow) { HWND hwnd; MSG msg; WNDCLASSEX wndclass; wndclass.cbSize = sizeof(wndclass); wndclass.style = CS_HREDRAW |CS_VREDRAW; wndclass.lpfnWndProc = XuLyMessage; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInst; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); RegisterClassEx(&wndclass); hwnd = CreateWindow (szAppName,TEXT("Vi du mo dau"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, NULL, hInst, NULL); ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK XuLyMessage(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT rect; switch (iMsg) { case WM_PAINT: hdc = BeginPaint(hwnd,&ps); GetClientRect(hwnd, &rect); DrawText(hdc, TEXT("Lap trinh C trong window"), -1, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER); EndPaint(hwnd,&ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, iMsg, wParam, lParam); } return 0; }
Compile Code::Block
Code::Block OutPut Code:
C:\Documents and Settings\Tong Quang Hoang\Desktop\1.o:1.cpp:(.text+0x6e)||undefined reference to `_GetStockObject@4'| ||=== Build finished: 1 errors, 0 warnings ===|
Compile VC++ 2008 Express
VC++ 2008 Express output Code:
Error 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup MSVCRTD.lib Error 2 fatal error LNK1120: 1 unresolved externals C:\Documents and Settings\Tong Quang Hoang\My Documents\Visual Studio 2008\Projects\window1\Debug\window1.exe 1
Lạ nhỉ, mình biên dịch trên vc6 và vc2k5 ko có lỗi, vc++ express thì mình chưa thử. Bạn đem hết cả project lên đây đi, mấy lỗi linker này thường phải có cả project mới dò được.
Đã được chỉnh sửa lần cuối bởi meoconlongvang : 26-09-2008 lúc 11:18 AM.
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.
Lại tạo project kiểu console đây mà, để project kiểu win32 app ấy
Life:\> dir
lỗi này có nghĩa là cậu đã dùng sai hàm main rồi,chắc là do cậu dùng console như hoang linh nói đóError 1 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup MSVCRTD.lib
Error 2 fatal error LNK1120: 1 unresolved externals C:\Documents and Settings\Tong Quang Hoang\My Documents\Visual Studio 2008\Projects\window1\Debug\window1.exe 1
cậu chuyển sang Win32 GUI Project đi,hoăcj dùng VC++6.0 đi
Lại tạo project kiểu console đây mà, để project kiểu win32 app ấyChắc là do cái này đó, hướng dẫn chi tiết hơn cho mình đi, mình mới tập dùng VC++ mà. Cảm ơn mọi người.lỗi này có nghĩa là cậu đã dùng sai hàm main rồi,chắc là do cậu dùng console như hoang linh nói đó
cậu chuyển sang Win32 GUI Project đi,hoăcj dùng VC++6.0 đi
cậu học VC++ thì nên dùng VC++ để biên dịchChắc là do cái này đó, hướng dẫn chi tiết hơn cho mình đi, mình mới tập dùng VC++ mà. Cảm ơn mọi người.
vào VC++6
chọn win32 Application rồi đánh tên vào
chọn 1 trong 3 dòng hiện ra đều được
dòng đầu là trống trơn code
dòng 2 là 1 đoạn code được soạn cơ bản
dòng 3 là 1 ứng dụng viết theo lời chào thế giới
chọn cái thứ nhất sau đó cậu copy code vào là ấn F7 để chạy là được,hoặc F5 để xem kết quả
có thể dùng CFREE thì nhanh hơn,cứ copy code là chạy được luôn-> thằng này ăn tạp chạy gì cũng được
hoặc dùng code::block thì chọn Win32 GUI Project như mình nói ở trên đó( sau khi chọn new project
Cái VC 6.0 Code nhiều lúc crazy lắm. Có lẽ nên dùng bản 2k5.
VC6 chuyên để lập trình hệ thống mình nghĩ là chuẩn nhất rồi,còn 2005 mình nghĩ dùng cho C# và .net thì tốt hơn,mỗi cái chỉ có 1 điểm mạnh thôi,2005 hoặc những trình biên dịch cao hơn không thể ôm đồm tất cảCái VC 6.0 Code nhiều lúc crazy lắm. Có lẽ nên dùng bản 2k5.
Bạn viết thiếu hàm:
void main()
{}
Chỉ đơn giản thế thôi, ^^