we6540 发表于 2015-11-14 19:34:13

这个错误怎么解决啊

大神求解编程中下面的错误怎么解决,我弄了很久还是不行啊:cry




1>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:34:14

这个是正规模板 只要理解他里面的意思就可以了用到的时候 复制一下,修改回调函数即可!

y290176346 发表于 2015-11-14 19:55:13

本帖最后由 y290176346 于 2015-11-14 19:57 编辑

你这个是在哪学的代码 怎么跟甲鱼老师学的不一样,你的排版很乱,我觉着十分有耐心的人才能回答你的问题
abc winclass 好像你的语法格式都不对,看样子好像是c语言不扎实, 太困难了
还是我的c语言没学好,看不懂!!!

we6540 发表于 2015-11-14 20:06:49

y290176346 发表于 2015-11-14 19:55
你这个是在哪学的代码 怎么跟甲鱼老师学的不一样,你的排版很乱,我觉着十分有耐心的人才能回答你的问题
a ...

那句是结构体定义变量吧。。。。。

y290176346 发表于 2015-11-14 20:38:10

我看你定义的abc结构 到m你的赋值才到J还有你把回调函数也注释了,消息循环也没有。复制到vs里面运行了一下 缺少的东西太多 你肯定没看过小甲鱼的视频,你这样学windows 程序设计会累死的 ,cong a 到m 定义,自己编者都头晕,建议你从都看看windows程序设计的视频

y290176346 发表于 2015-11-14 20:41:05



#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);
}

dps521 发表于 2015-11-28 12:45:14

:smile:smile:smile:smile:smile:smile

dps521 发表于 2015-11-29 13:19:11

过来看看一起学习一起研究一下:smile:smile:smile:smile

q873475510 发表于 2016-1-18 14:29:19

学习了
页: [1]
查看完整版本: 这个错误怎么解决啊