****当局者迷啊,大虾们帮我看看到底有什么错!(很容易得分的哦!)%%%%%%%%

jfzsl 2001-07-11 03:18:14
WINDOWS 程序设计 一书的第三章的例子,我按着书上的输入进去就是不对,但把原光盘上的考过去就行了!苦恼啊!大家帮我看看错在哪里?我的程序执行后弹出对话框,提示:"This program requires Windows NT!".我的环境是WIN2000,原程序我拷贝过来是可以的!

/************************************MY PROGRAM***********************/

#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstace,
PSTR szCmdLine,int iCmdShow)
{
static TCHAR szAppName[] = TEXT("3_1"); /* 我的工程名 */
HWND hwnd;
MSG msg;
WNDCLASS wndclass;

wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbClsExtra = 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 requires Windows NT!"),szAppName,MB_ICONERROR);
return 0;
}
hwnd = CreateWindow(szAppName,
TEXT("The Hello Program"),
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("hellowin.wav"),NULL,SND_FILENAME | SND_ASYNC);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,TEXT("Hello,Windows 98!"),-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);
}

/*******************************SOURCE FILE*************************/


/*------------------------------------------------------------
HELLOWIN.C -- Displays "Hello, Windows 98!" in client area
(c) Charles Petzold, 1998
------------------------------------------------------------*/

#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 ("3_1") ; /* 原来TEXT中的内容为 "hellowin" */
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 ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}

hwnd = CreateWindow (szAppName, // window class name
TEXT ("The Hello Program"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters

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 ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
return 0 ;

case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;

GetClientRect (hwnd, &rect) ;

DrawText (hdc, TEXT ("Hello, Windows 98!"), -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) ;
}
...全文
138 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jfzsl 2001-07-11
  • 打赏
  • 举报
回复
TO:microstar
没关系,有时候这种刺激能让一个麻木的人清醒一些!
microstar 2001-07-11
  • 打赏
  • 举报
回复
jfzsl:不好意思了。
wjyasd 2001-07-11
  • 打赏
  • 举报
回复
microstar 还是提点建设性的意见好! 不犯错误就不是程序员了!哈哈
wjyasd 2001-07-11
  • 打赏
  • 举报
回复
一边又一边的看……嘿嘿!

F11
jfzsl 2001-07-11
  • 打赏
  • 举报
回复
TO:microstar(microstar) 
大哥,不要打击我了好吗?我学(想学)VC很久了,但一直没有系统的学习。主要原因是我的工作范围用不到。再着,手边又时不时的有些烂活,我又不得不去应付,所以 ......!
以后还望多多指教!
jfzsl 2001-07-11
  • 打赏
  • 举报
回复
剿匪总司令激动的拉着wjyasd(即使用FPE改了钱,也绝不能忘记艰苦朴)的手,久久的说不出一句话。最后说:“还是给你分吧”!

BTW:你是怎么找出来的?我可是看了半天都没有找出来!
microstar 2001-07-11
  • 打赏
  • 举报
回复
真烂,你是怎么做程序员的呀,你的wndClass.cbClsExtra被设了两遍,可你的cbWndExtra呢,你不会用GetLastError ()跟一把吗?
vcbacker 2001-07-11
  • 打赏
  • 举报
回复
faint,真没面子,扯乎
vcbacker 2001-07-11
  • 打赏
  • 举报
回复

wndclass.cbClsExtra = 0;
wndclass.cbClsExtra = 0;
改为:
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
你输入错误,仔细看看不就得了吗/
wjyasd 2001-07-11
  • 打赏
  • 举报
回复
这里错了!

你的程序:
wndclass.cbClsExtra = 0;
wndclass.cbClsExtra = 0;

原程序:

wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ; 《-------这里;

改过来就可以了!~ ^&^

jfzsl 2001-07-11
  • 打赏
  • 举报
回复
你们用行的是哪个程序?是第一个吗?我问的是第一个程序的问题。我把第二个拷贝过来改一下名字也是好用的,可是我自己输入的第一个程序就是提示:This program requires Windows NT!
vcbacker 2001-07-11
  • 打赏
  • 举报
回复
程序有问题才怪!
我不是大明 2001-07-11
  • 打赏
  • 举报
回复
程序没有问题,只可能是你系统的问题。
我运行没有问题!
yajunmao 2001-07-11
  • 打赏
  • 举报
回复
what difference bwteen copy and CHAO
jfzsl 2001-07-11
  • 打赏
  • 举报
回复
也就是 说前一个程序RegisterClass(&wndclass) 出错,而第二个正确!我看了半天也不知那里不一样啊!
艺帆医疗健康机构网站源码特色功能: ※ 简约代码,让你的网站轻快流畅 ※ 全站DIV CSS ※ 自动伪静态.html结尾 ※ 关键词自动匹配设置 ※ 全面针对搜索引擎优化 ※ 图片批量上传,省去一张张上传的烦恼。 ※ 强大模板库和组件扩展 功能更强大 艺帆医疗健康机构网站源码简介 设计创意是网站设计的本质,一个网站的核心竞争力。一个专业的网站规划人员不怕自己的规划才能或技术不行,担心的往往是自己的创意思维出现匮乏,没有了创意及灵感,那就意味着这个规划设计人员失去了规划的竞争力,也就失去了网站规划原始生命力。 1、网站规划,往往成败在于细节 目前大部分网站规划人员在进行网站规划时使用得最多的方法就是从网格开始规划。先做一些线框,将区块与分栏布置好,然后再将配色方案与主题进行定位确定,最后再进行细节处理,即由大而小。但是,按照惯例手段来进行问题处理,往往不会助你发现任何奇妙的变化,也不会促发任何创意的发生,因而,咱们需要的是突破惯例,由小而大会让网站规划妙趣横生。或许通过一个小小的表单按钮的规划或者是网站规划当中一个小小装饰物的构思就可以让咱们瞬间萌发更多更美妙的想法。 2、疑问解决,激起创意 人类之所以会有进步就是因为疑问不断的发生并不断的被解决,网站规划相同如此。不要去惧怕疑问的发生,疑问一旦发生就会给咱们带来了回过头查看的时机,在查看网站规划出现的疑问的过程中,往往会给咱们带来许许多多的小惊喜,包括突然间跳出来的小创意。 3、抓住重心,发散思维 生活有重心,企业生产经营有核心,网站规划也需要有重心。这个重心可以是企业文化,可以是产品优势,可以是客户需求,更可以是网站规划本身的LOGO元素。. 4、站在客户的角度,寻找突破点 每一个网站规划都有功能需求,通常情况下,咱们都会先进行网站规划再进行代码添加,也可能反其道而行之。但无论是哪种形式,功能需求一定会先行,网站规划人员在了解到网站功能需求后应该首先从客户角度出发,设身处地的想想,客户会比较喜欢什么样的操作形式。 5、网站规划元素组合 网站规划组合元素无非字体,线条,图片,文字,LOGO,背景等等一些最基础的网站规划需求,但千万别小看了这些组成元素,只要你长于观察,一定会有新发现。 6、知己知彼,百战不殆 每个人有不同的思维,十个人十种思维,一百个人就能拥有一百种思维,网站规划又何尝不是这样?多看看一些经验丰富或者同行的网站规划,相信你一定能找到新的起点。 7、换位思考,走出束缚 若是长时间的从事同一工作不但不会有新的进展,反而会发生抵触心理,因而网站规划人员应该经常切换项目以坚持愉悦的心情。当局者迷,你看不到的疑问或许别人一眼就能看透;客户虽然不懂网站规划,但他的观点却是一个泉眼。 安全:道高一尺,强力保护您的爱站,不定时收集反馈BUG和漏洞,不定时的更新安全防护。让您的爱站每天接受体检,享受免费医疗的福利。 源码全部开源,支持自由修改发布。 全站完整无,如无法架设可以去论坛看下教程 艺帆医疗健康机构网站源码前台页面 艺帆医疗健康机构网站源码后台管理 后台地址:域名/i5808 账号:i5808 密码:123456 后台页面 相关阅读 同类推荐:站长常用源码

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧