windows-一个简单Windows程序无法链接,求大神指导,感谢

问题描述

一个简单Windows程序无法链接,求大神指导,感谢
// HelloWin.C 在客户区显示“你好 Windows 7” (c) Charles Petzold 1998

#include

#pragma comment(libwinmm.lib"")

LRESULT CALLBACK WinProc(HWND UINT WPARAM LPARAM);

int WINAPI WinMain(HINSTANCE hInstance HINSTANCE hPrevInstance PSTR szCmdLine int iCmdShow)
{
static TCHAR szAppName[] = TEXT(""HelloWin"");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WinProc;
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(""This program require Windows NT!"")        szAppName MB_ICONERROR);    return 0;}hwnd = CreateWindow(szAppName    TEXT(""你好程序"")    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_CREATE:    PlaySound(TEXT(""Windows Startup.wav"") NULL SND_FILENAME | SND_ASYNC);    return 0;case WM_PAINT:    hdc = BeginPaint(hwnd &ps);    GetClientRect(hwnd &rect);    DrawText(hdc TEXT(""你好,Windows 7!"") -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);

}

Error 1 error LNK2019: unresolved external symbol _WinProc@16 referenced in function _WinMain@16

vs2102 win32项目无法通过,求大神指导,谢谢

解决方案

你把函数名搞错了,前后要一致。
LRESULT CALLBACK WinProc(HWND UINT WPARAM LPARAM);
。。。
LRESULT CALLBACK WndProc(HWND hwnd UINT message WPARAM wParam LPARAM lParam)
{
。。。
}

解决方案二:
直接在VC++中新建win32项目,有模板

解决方案三:
话说我没看出来有问题。。
如果非要说有问题,那么就把每个函数前加上extern ""C""试试,手头没电脑也没法调试,不过这种写法是没有问题的,VS2013都没事,win32是Windows用户态的核心,MFC基于win32,.NET最终也得经过win32,就连微软极力推荐的Metro应用和所谓的UWP在x86和x86-64上还是基于win32。所以win32编程技术虽然不流行了,但是他会作为底层一直存在下去

解决方案四:
wndclass.lpfnWndProc = WinProc;

把WndProc改为WinProc,方便点。

解决方案五:
先申明一下winproc函数。

解决方案六:
LRESULT CALLBACK WinProc(HWND UINT WPARAM LPARAM); 这个算吗,还需其他声明吗?

解决方案七:
感谢,用他自带的向导是没有问题的,那以前的Win32写法还能通过编译吗?

解决方案八:
Charles Petzold 1998,多少年前的东西,用的VC++版本都不同

解决方案九:
估计6.0没问题,没试过,就想看看win7能不能搞定:-D,win98的东西了,难道win7还过不了这坎?

解决方案十:
况且用向导生成的是MFC框架,我对MFC不太感冒,尽管MFC还是比较方便的。:-D

时间: 2024-08-04 04:37:13

windows-一个简单Windows程序无法链接,求大神指导,感谢的相关文章

代码-做一个贴吧评价功能,求大神指导啊。

问题描述 做一个贴吧评价功能,求大神指导啊. 做一个贴吧评价功能,简单的评价功能,小弟不才,求大神指导,这个代码怎么敲!

用JavaSE做一个简单的QQ项目,求大神们帮助,求全方面的注释

问题描述 javaSE快结束了,SE结束,我们就面临着项目的到来.兄弟连培训机构要求我们做一个QQ项目,只要实现单聊,全聊,登录界面,注册界面.求大神们帮帮忙..

c语言基础-真的很着急,大一学生党,求大神指导写一个c语言拨号程序

问题描述 真的很着急,大一学生党,求大神指导写一个c语言拨号程序 能显示出通讯录中所有人姓名,当选中某个姓名时,屏幕上模拟打字机效果依次显示出此人的电话号码中的各个数字,并伴随相应的拨号声 解决方案 http://zhidao.baidu.com/link?url=svF4fjRTNuBmCJyCiRipzB_21UO5zvNc0hCye7qj8nxOY1lC78667ycDqYnJ7xHiGT00M4NuYqGIak2R5cEU961mjRl1ADLf-Eh1nDKpiBi

node js-关于windows 7 64位 pomelo的安装 求大神解救

问题描述 关于windows 7 64位 pomelo的安装 求大神解救 最近想研究下Node.js 在安装pomelo的时候 总是报错 求大神些帮忙解决下 怎样才能成功搭建node.js和pomelo谢谢大家. 解决方案 pomelo是基于Node.js的,目前pomelo已经完全支持Windows.Linux.Mac等多种平台.Win8 都可以安装了,Win7 还有问题吗? 准备确保你的机器可以上网因为安装pomelo的过程需要从网上下载其依赖的包. 确保你的系统上已经要安装了Node,目前

暴力删除-求大神指导一个简单粗暴的bat造成的不良影响如何消除

问题描述 求大神指导一个简单粗暴的bat造成的不良影响如何消除 网上流传的暴力删除bat代码如下: DEL?/F?/A?/Q??%1 RD?/S?/Q??%1 就这么两行,然后只要把想删除的东西拖动到生成的BAT上就会把那个东西删除掉 问题来了:我拖动图标的时候,明明只拖了一个,它给我把很多东西都删了!连他自己本身也删掉了...我蛋疼无比啊...现在跪求大神教我如何恢复,或告知一下能否恢复!万谢不辞!!! 解决方案 太有意思了,呵呵,?是什么意思,没看懂啊. 解决方案二: 找找恢复软件试试,这种

如何在服务器空间中每隔一段时间自动执行一个程序,现在有的条件是服务器空间,没有服务器内部的权限,不能通过iis,求大神指导。

问题描述 如何在服务器空间中每隔一段时间自动执行一个程序,现在有的条件是服务器空间,没有服务器内部的权限,不能通过iis,求大神指导.详细说下现在要实现的功能,是这样,我们公司是做房产的,中介会上传一些房源图片,而现在这些图都是通过人工下载.要实现的功能是,自动下载这些图,并且转存到另一个空间中.与此同时,因为中介上传的时间不能确定,所以该程序,每隔两个小时运行一次.这个该怎么实现,求思路!!! 解决方案 解决方案二:你要下载到哪里,就应该在哪里执行你的程序啊你扔服务器上执行,图本来不就是在服务

windows下批处理问题,求大神指导

问题描述 windows下批处理问题,求大神指导 @echo off set pgpassword= set hostname= set dbuser= set dbname= set out_dir=d:1 set time=to_timestamp('2000-12-01 10:00:00','yyyy-mm-dd hh24:mi:ss') psql -h %hostname% -U %dbuser% -c "select * from ad_client where ad_client_i

mysql-c++接口程序求大神指导

问题描述 c++接口程序求大神指导 当我执行到try语句块中的stmt->executeUpdate()时就跳入至catch里,而且我看了catch里的err = ex.getErrorCode()的err值为0,而且ex.getMessage()信息如下面的自动窗口提示,不知怎么修改,希望有大神指点,谢谢!具体代码如下图: 解决方案 这个比较简单,你先下载一个MYSQL的管理工具,然后登陆服务器,在将你程序执行时的sql语句在管理工具(新建查询)里面运行一下,一般你的语句要是 没问题,那么不会

窗体-C#中如何添加FormClose事件 按了关闭,程序没有停止调试,求大神指导

问题描述 C#中如何添加FormClose事件 按了关闭,程序没有停止调试,求大神指导 刚开始学习C#窗体 做登录界面 在登录按钮设置了 连接一个成功提示,但是进去了按关闭的时候,窗体并没有停止运行,一直在调试,求该如何解决,希望大神们帮帮忙 private void button1_Click(object sender, EventArgs e) { if(textBox1.Text=="admin"&&textBox2.Text=="123")