这个错误怎么解决啊
大神求解编程中下面的错误怎么解决,我弄了很久还是不行啊:cry1>1.obj : error LNK2019: 无法解析的外部符号 "struct HWND__ * __cdecl CreateWindowExA(unsigned long,char const *,char const *,unsigned long,int,int,struct HWND__ *,struct HMENU__ *,struct HINSTANCE__ *,void *)" (?CreateWindowExA@@YAPAUHWND__@@KPBD0KHHPAU1@PAUHMENU__@@PAUHINSTANCE__@@PAX@Z),该符号在函数 _WinMain@16 中被引用
1>D:\vs2010\测试程序\程序测试\游戏编程\6\Debug\6.exe : fatal error LNK1120: 1 个无法解析的外部命令
这是完整的代码
#define WIN32_LEAN_AND_MEAN
#include <windows.h> // the main windows headers
#include <windowsx.h> // a lot of cool macros
typedef struct _abc
{
UINT a; //无符号int
UINT style;
WNDPROC lpfnWndproc; //
int e;
int f;
HANDLE G; //对象句柄最基本的句柄类型
HICON H; //图标句柄
HCURSOR I; //鼠标句柄,用以指定鼠标移入窗口时的样式
HBRUSH J; //用来刷背景颜色的画刷句柄
LPCTSTR K; //windos(ANSI)字符串常量
LPCTSTR L; //指向一个以"NULL"结束的Unicode或Windows字符串常量的指针
HICON M;
}abc;
int WINAPI WinMain(HINSTANCE hinstance,
HINSTANCE hprevinstance,
LPSTR lpcmdline,
int ncmdshow)
{
abc winclass;
winclass.a=sizeof(abc);
winclass.style=CS_VREDRAW | CS_HREDRAW | CS_OWNDC | CS_DBLCLKS; //修改窗口多种方法
//winclass.lpfnWndproc= WindowProc;
winclass.e=0;
winclass.f=0;
winclass.G=hinstance; //图形“句柄型”复制给
winclass.H=LoadIcon(NULL , IDI_HAND); //图标符号
HICON LoadIcon(HINSTANCE hinstance ); //图标句柄类型 图表标帜符号
winclass.I=LoadCursor(NULL,IDC_ARROW); //从指定的模块或应用程序实例中载入一个鼠标指针
HICON LoadCursor(HINSTANCE hinstance ); //图标句柄 从指定的模块程序中载入一个鼠标指针
winclass.J=(HBRUSH)GetStockObject(BLACK_BRUSH);//画刷句柄 取得一个固有对象(Stock)
HWND CreateWindowEx( //窗口句柄
DWORD dwStyle,
LPCTSTR lpClassName,
LPCTSTR lpWindowName, //指向一个以"NULL"结束的Unicode或Windows字符串常量的指针
DWORD dwstyle, //指向一个无符号双字(32位)的指针
int x,
int y,
HWND nWidth,
HMENU hMenu,
HINSTANCE hInstance, //实例句柄
LPVOID lpParam); //指向任何类型的指针
HWND hwnd; //窗口句柄
if(!(hwnd=CreateWindowEx(NULL,
"ASDASD",
"ASDASD",
WS_OVERLAPPEDWINDOW,
0,
400,
NULL,
NULL,
hinstance,
NULL
)))
return (0);
//MessageBox(NULL, TEXT("THERE CAN BE ONLY ONE!!!"),TEXT("MY FIRST WINDOWS PROGRAM"),IDYES | MB_ICONQUESTION);
// exit program
return(0);
} // end WinMain 这个是正规模板 只要理解他里面的意思就可以了用到的时候 复制一下,修改回调函数即可! 本帖最后由 y290176346 于 2015-11-14 19:57 编辑
你这个是在哪学的代码 怎么跟甲鱼老师学的不一样,你的排版很乱,我觉着十分有耐心的人才能回答你的问题
abc winclass 好像你的语法格式都不对,看样子好像是c语言不扎实, 太困难了
还是我的c语言没学好,看不懂!!!
y290176346 发表于 2015-11-14 19:55
你这个是在哪学的代码 怎么跟甲鱼老师学的不一样,你的排版很乱,我觉着十分有耐心的人才能回答你的问题
a ...
那句是结构体定义变量吧。。。。。 我看你定义的abc结构 到m你的赋值才到J还有你把回调函数也注释了,消息循环也没有。复制到vs里面运行了一下 缺少的东西太多 你肯定没看过小甲鱼的视频,你这样学windows 程序设计会累死的 ,cong a 到m 定义,自己编者都头晕,建议你从都看看windows程序设计的视频
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT("MyWindows");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;
if (!RegisterClass(&wndclass))
{
MessageBox(NULL, TEXT("这个程序需要在 Windows NT 才能执行!"), szAppName, MB_ICONERROR);
return 0;
}
hwnd = CreateWindow(szAppName,
TEXT("鱼C工作室"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd, iCmdShow);
UpdateWindow(hwnd);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText(hdc, TEXT("大家好,这是我的第一个窗口程序!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam);
} :smile:smile:smile:smile:smile:smile 过来看看一起学习一起研究一下:smile:smile:smile:smile 学习了
页:
[1]