鄙人买了侯的深入浅出MFC,在VC6下,运行光盘上的例子能编译但不能Link
搞了好久,信心都快没了。哪位兄弟能帮忙指出错误将不胜感激(附源码,那个图标没法粘上来)
//---------------------------------------------------------------------
// Generic - ボ絛 Win32 祘Α膀娄糶猭
// Top Studio * J.J.Hou
// 郎 : generic.c
// : 獼玊城
// 絪亩羛挡 : 叫把σ generic.mak
//---------------------------------------------------------------------#include <windows.h> // – Windows 祘Α常惠璶郎
#include "resource.h" // ず resource IDs
#include "generic.h" // セ祘Αぇ郎HINSTANCE _hInst; // Instance handle
HWND _hWnd;char _szAppName[] = "Generic"; // 祘Α嘿
char _szTitle[] = "Generic Sample Application"; // 跌怠夹肈//---------------------------------------------------------------------
// WinMain - 祘Α秈翴
//---------------------------------------------------------------------
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg; UNREFERENCED_PARAMETER(lpCmdLine); // 磷絪亩牡 if (!hPrevInstance)
if (!InitApplication(hInstance))
return (FALSE); if (!InitInstance(hInstance, nCmdShow))
return (FALSE); while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
} return (msg.wParam); // 肚 PostQuitMessage 把计
}
//---------------------------------------------------------------------
// InitApplication - 爹跌怠摸
//---------------------------------------------------------------------
BOOL InitApplication(HANDLE hInstance)
{
WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc; // 跌怠ㄧΑ
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(hInstance, "jjhouricon");
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = GetStockObject(WHITE_BRUSH); // 跌怠璉春肅︹
wc.lpszMenuName = "GenericMenu"; // .RC ┮﹚竡虫
wc.lpszClassName = _szAppName; return (RegisterClass(&wc));
}
//---------------------------------------------------------------------
// InitInstance - 玻ネ跌怠
//---------------------------------------------------------------------
BOOL InitInstance(HANDLE hInstance, int nCmdShow)
{
_hInst = hInstance; // 纗办跑计よ獽ㄏノ _hWnd = CreateWindow(
_szAppName,
_szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
); if (!_hWnd)
return (FALSE); ShowWindow(_hWnd, nCmdShow); // 陪ボ跌怠
UpdateWindow(_hWnd); // 癳 WM_PAINT
return (TRUE);
}
//---------------------------------------------------------------------
// WndProc - 跌怠ㄧΑ
//---------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent; switch (message) {
case WM_COMMAND: wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam); switch (wmId) {
case IDM_ABOUT:
DialogBox(_hInst,
"AboutBox", // 癸杠舶戈方嘿
hWnd, // 跌怠
(DLGPROC)About // 癸杠舶ㄧΑ嘿
);
break; case IDM_EXIT:
// ㄏノ稱挡祘Α矪瞶よΑ籔 WM_CLOSE
DestroyWindow (hWnd);
break; default:
return (DefWindowProc(hWnd, message, wParam, lParam));
}
break; case WM_DESTROY: // 跌怠竒砆篟反 (祘Α盢挡)
PostQuitMessage(0);
break; default:
return (DefWindowProc(hWnd, message, wParam, lParam));
}
return (0);
}
//---------------------------------------------------------------------
// About - 癸杠舶ㄧΑ
//---------------------------------------------------------------------
LRESULT CALLBACK About(HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam); // 磷絪亩牡 switch (message) {
case WM_INITDIALOG:
return (TRUE); // TRUE ボи矪瞶筁硂癟 case WM_COMMAND:
if (LOWORD(wParam) == IDOK
|| LOWORD(wParam) == IDCANCEL) {
EndDialog(hDlg, TRUE);
return (TRUE); // TRUE ボи矪瞶筁硂癟
}
break;
}
return (FALSE); // FALSE ボи⊿Τ矪瞶硂癟
}
//------------------------ end of file ------------------------------
搞了好久,信心都快没了。哪位兄弟能帮忙指出错误将不胜感激(附源码,那个图标没法粘上来)
//---------------------------------------------------------------------
// Generic - ボ絛 Win32 祘Α膀娄糶猭
// Top Studio * J.J.Hou
// 郎 : generic.c
// : 獼玊城
// 絪亩羛挡 : 叫把σ generic.mak
//---------------------------------------------------------------------#include <windows.h> // – Windows 祘Α常惠璶郎
#include "resource.h" // ず resource IDs
#include "generic.h" // セ祘Αぇ郎HINSTANCE _hInst; // Instance handle
HWND _hWnd;char _szAppName[] = "Generic"; // 祘Α嘿
char _szTitle[] = "Generic Sample Application"; // 跌怠夹肈//---------------------------------------------------------------------
// WinMain - 祘Α秈翴
//---------------------------------------------------------------------
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg; UNREFERENCED_PARAMETER(lpCmdLine); // 磷絪亩牡 if (!hPrevInstance)
if (!InitApplication(hInstance))
return (FALSE); if (!InitInstance(hInstance, nCmdShow))
return (FALSE); while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
} return (msg.wParam); // 肚 PostQuitMessage 把计
}
//---------------------------------------------------------------------
// InitApplication - 爹跌怠摸
//---------------------------------------------------------------------
BOOL InitApplication(HANDLE hInstance)
{
WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc; // 跌怠ㄧΑ
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(hInstance, "jjhouricon");
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = GetStockObject(WHITE_BRUSH); // 跌怠璉春肅︹
wc.lpszMenuName = "GenericMenu"; // .RC ┮﹚竡虫
wc.lpszClassName = _szAppName; return (RegisterClass(&wc));
}
//---------------------------------------------------------------------
// InitInstance - 玻ネ跌怠
//---------------------------------------------------------------------
BOOL InitInstance(HANDLE hInstance, int nCmdShow)
{
_hInst = hInstance; // 纗办跑计よ獽ㄏノ _hWnd = CreateWindow(
_szAppName,
_szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
); if (!_hWnd)
return (FALSE); ShowWindow(_hWnd, nCmdShow); // 陪ボ跌怠
UpdateWindow(_hWnd); // 癳 WM_PAINT
return (TRUE);
}
//---------------------------------------------------------------------
// WndProc - 跌怠ㄧΑ
//---------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent; switch (message) {
case WM_COMMAND: wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam); switch (wmId) {
case IDM_ABOUT:
DialogBox(_hInst,
"AboutBox", // 癸杠舶戈方嘿
hWnd, // 跌怠
(DLGPROC)About // 癸杠舶ㄧΑ嘿
);
break; case IDM_EXIT:
// ㄏノ稱挡祘Α矪瞶よΑ籔 WM_CLOSE
DestroyWindow (hWnd);
break; default:
return (DefWindowProc(hWnd, message, wParam, lParam));
}
break; case WM_DESTROY: // 跌怠竒砆篟反 (祘Α盢挡)
PostQuitMessage(0);
break; default:
return (DefWindowProc(hWnd, message, wParam, lParam));
}
return (0);
}
//---------------------------------------------------------------------
// About - 癸杠舶ㄧΑ
//---------------------------------------------------------------------
LRESULT CALLBACK About(HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam); // 磷絪亩牡 switch (message) {
case WM_INITDIALOG:
return (TRUE); // TRUE ボи矪瞶筁硂癟 case WM_COMMAND:
if (LOWORD(wParam) == IDOK
|| LOWORD(wParam) == IDCANCEL) {
EndDialog(hDlg, TRUE);
return (TRUE); // TRUE ボи矪瞶筁硂癟
}
break;
}
return (FALSE); // FALSE ボи⊿Τ矪瞶硂癟
}
//------------------------ end of file ------------------------------
解决方案 »
- 与主席会面,经研究决定 散分
- visual studio 2005 没有找到MFC80UD.DLL 因此这个应用程序未能启动。重新安装应用程序可能会修复此问题
- 如何取得网卡的个数
- 请教哪有学习ActiveX(vc开发)的电子书下载?
- 使用的CserialPort的高手看看,这里有点问题。
- 如何在一个单dialog上显示一个图片?????
- 哪位朋友用过移动硬盘请进?
- 非常急切==请大家指供意见或资料--像NetAnts的表格哪里有或者用什么来做好
- 请问:哪里有MCIWndX控件下载?
- 如何获得工具栏中某个按键已按下(不用枚举) ???
- 在sdk中如何让一个对话框可以放置ip address control控件,望高手指点!在线等待!
- 菜鸟问题!大虾救命~~~
// 郎 : generic.h
//---------------------------------------------------------------------
BOOL InitApplication(HANDLE);
BOOL InitInstance(HANDLE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
# make file for generic.exe (Generic Windows Application)
# usage : nmake generic.mak (Microsoft C/C++ 9.00) (Visual C++ 2.0)
# usage : nmake generic.mak (Microsoft C/C++ 10.00) (Visual C++ 4.0)all: generic.exegeneric.res : generic.rc generic.h
rc generic.rcgeneric.obj : generic.c generic.h
cl -c -W3 -Gz -D_X86_ -DWIN32 generic.cgeneric.exe : generic.obj generic.res
link /MACHINE:I386 -subsystem:windows generic.res generic.obj \
libc.lib kernel32.lib user32.lib gdi32.lib
// 郎 : generic.rc
//---------------------------------------------------------------------
#include "windows.h"
#include "resource.h"jjhouricon ICON DISCARDABLE "jjhour.ico"GenericMenu MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&New", IDM_NEW, GRAYED
MENUITEM "&Open...", IDM_OPEN, GRAYED
MENUITEM "&Save", IDM_SAVE, GRAYED
MENUITEM "Save &As...", IDM_SAVEAS, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Print...", IDM_PRINT, GRAYED
MENUITEM "P&rint Setup...", IDM_PRINTSETUP, GRAYED
MENUITEM SEPARATOR
MENUITEM "E&xit", IDM_EXIT
END
POPUP "&Edit"
BEGIN
MENUITEM "&Undo\tCtrl+Z", IDM_UNDO, GRAYED
MENUITEM SEPARATOR
MENUITEM "Cu&t\tCtrl+X", IDM_CUT, GRAYED
MENUITEM "&Copy\tCtrl+C", IDM_COPY, GRAYED
MENUITEM "&Paste\tCtrl+V", IDM_PASTE, GRAYED
MENUITEM "Paste &Link", IDM_LINK, GRAYED
MENUITEM SEPARATOR
MENUITEM "Lin&ks...", IDM_LINKS, GRAYED
END
POPUP "&Help"
BEGIN
MENUITEM "&Contents", IDM_HELPCONTENTS, GRAYED
MENUITEM "&Search for Help On...", IDM_HELPSEARCH, GRAYED
MENUITEM "&How to Use Help", IDM_HELPHELP, GRAYED
MENUITEM SEPARATOR
MENUITEM "&About Generic...", IDM_ABOUT
END
ENDAboutBox DIALOG DISCARDABLE 22, 17, 144, 75
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "About Generic"
BEGIN
CTEXT "Windows 95", -1,0, 5,144,8
CTEXT "Generic Application",-1,0,14,144,8
CTEXT "Version 1.0", -1,0,34,144,8
DEFPUSHBUTTON "OK", IDOK,53,59,32,14,WS_GROUP
END
// 郎 : resource.h
//---------------------------------------------------------------------
#define IDM_NEW 40001
#define IDM_OPEN 40002
#define IDM_SAVE 40003
#define IDM_SAVEAS 40004
#define IDM_PRINT 40005
#define IDM_PRINTSETUP 40006
#define IDM_EXIT 40007
#define IDM_UNDO 40008
#define IDM_CUT 40009
#define IDM_COPY 40010
#define IDM_PASTE 40011
#define IDM_LINK 40012
#define IDM_LINKS 40013
#define IDM_HELPCONTENTS 40014
#define IDM_HELPSEARCH 40015
#define IDM_HELPHELP 40016
#define IDM_ABOUT 40017
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Generic.exe : fatal error LNK1120: 1 unresolved externals
[Linker error] undefined reference to `GetStockObject@4'