接触VC之一:WinSDK

预设目录:

第一部分:WinSDK

第二部分:MFC类基础,C++程序编写规范介绍

第三部分:MFC基于对话框程序

第四部分:Dll动态链接库

第五部分:COM组件基础

第六部分:COM组件几个常用技术:IDispatch,可连接对象.

第七部分:COM组件的应用,以及MFC的COM编写

第一部分:WinSDK

学习VC已近一年了,回顾我的学习历史真是相当的艰苦。既没有老师教,图书馆里也没有好书可看。为了买到好书,身上的银子几近花光,不得不过节衣缩食的生活。近些日来动起自己写写什么的打算,一来可以对自己的学习状况进行总结。二来,请教高手,可以帮忙指出错漏之处。三来,说不定会对初学者们有所帮助, 最起码也可以练练文笔。

OK。谈正事喽。首先MFC(Microsoft Foundation Class)是一种用来构建Win32程序的类库,但究其根本的话,是基于Windows老祖宗—Windows SDK,其历史可以追溯到Window 3.x时代。它整个构架是由C来编写的。更重要的是它的程序结构至今还是Win32程序的根本。因此,在学习VC的过程中,理解其程序结构是编写Win32程序的根本。

下面,就是一个WinSDK程序的示例(摘自侯先生的《深入浅出MFC》,在侯捷站点上有其此书的繁体电子版)

int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
  MSG msg;
  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);
}
BOOL InitApplication(HINSTANCE hInstance)
{
  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";
  wc.lpszClassName = "MyWindow";
  return (RegisterClass(&wc));
}
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
  hWnd = CreateWindow("MyWindow","This is Windows SDK",
  WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT,
  CW_USEDEFAULT,
  CW_USEDEFAULT,
  CW_USEDEFAULT,
  NULL,
  NULL,
  hInstance,
  NULL);
  if (hWnd == NULL)
    return (FALSE);
  ShowWindow(hWnd, nCmdShow);
  UpdateWindow(hWnd);
  return (TRUE);
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  switch (message)
  {
    case WM_DESTROY:
      PostQuitMessage(0);
      break;
    default:
      return DefWindowPro(hWnd, message, wParam, lParam);
}
  return 0;
}

时间: 2024-09-16 19:39:25

接触VC之一:WinSDK的相关文章

接触VC之四:COM组件模型基础

一年又一年,已经又过了一年了.我VC的生涯已经两岁了.可以相当地庆贺一下哟.回顾这一年的学习(唉,还没有工作实践呢.这年头,工作不好找哇.),还学了不少的好东西.其中,最重要的就是COM组件模型,我个人觉得这个几乎是Windows的核心.许多先进的技术(比如微软著名的DirectX,ADO,没有人会不知道吧)都以COM组件的形式发布的.现在,我瞄上了另一个好东东,就是泛型编程技术.它能够编写出清晰.灵活.高度可重用的代码,在ATL中就可以依稀看出它的影子(现在网上ATL文章有很多,我以后也会谈到

接触VC之三:MFC基于对话框程序

最近,本人赶时髦,装上了一套Visual Studio.net,安装要2213M呢,硬盘上三个盘符总共剩下不足2G的地方了.不过,界面相当的漂亮,且功能强大,值得心慰.我终于可以在类视图上,尽情去看类的基类,以及基类的实现代码了.不仅如此,最好的是那附带的MSDN上所有的VC基础文章都是中文,翻译的比希望出版社的好得没的说.什么文档啊,框加窗口啊,多视图啊,应有尽有.所以建议大家都来用.net的吧,注意是要那七张盘的,三张的是beta版,VC功能不全的. 这部分该说一说MFC的具体程序了.因为我

接触VC之二:MFC类基础,C++程序编写规范介绍

由于本文是面对C语言基础的(因为我就是从C学起来的),而MFC是利用C++类技术构建起来的.因此有必要在此为只了解C的朋友们,普及一下C++语言中类的概念.熟悉C++的朋友可以跳过本部分.从总体来说C++是向下兼容C的,你可以很不费力气地将用C编好了的程序拿到C++环境下编译执行.其C++只不过是在C的基础上添加面向对象技术(OOP),也就是类的概念,且值得一提的是C与C++都是由美国的贝尔实验室(在之前我只知道发明过电话)发明的. 一.什么是类? 按一些书本上的定义来说"就是一种复杂的数据类型

创业者与VC的接触之道

 创业企业因为具有高风险属性,一般很难通过银行贷款等方式获得资金,而"高风险.高收益"的风险投资正好符合这些企业的融资特点.但是,多数创业者因为缺乏与风险投资商打交道的经验,在与VC接触后经常被拒之门外.因此,如何获得VC的青睐就成了创业者普遍关心的问题.  多数创业者因为缺乏与风险投资商打交道的经验,在与他们接触后经常被拒之门外,因此,如何获得VC的青睐就成了这些创业者普遍关心的问题. 日前,在亚洲创业基金期刊集团举办的企业家融资战略活动会上,国内外众多知名的VC向创业者讲述了在与

VC常用的忽悠用语

创业者在向VC融资的时候,必然会面临风险投资(VC)对企业.对创业者,以及对企业所在行业和市场的质疑和调查.在尽职调查期间,有些创业者会耍小手段,忽悠和欺骗投资人.但更多的创业者在跟VC的接触中,则常常被后者忽悠.   忽悠用语之一:保持联系 在某个会议论坛上,一群创业者将某个大牌VC团团围住,VC逐一分发名片之后,有一两个幸运儿拉住VC要沟通一下他们的商业计划.三分钟之后,VC为了尽快摆脱,跟创业者握手及挥手:"保持联系!"然后一路小跑溜之大吉. 在VC的会议室,你和你的创业团队给V

VC的傲慢与偏见(一)

此次融资之行,本人面谈了15个VC,累计发送200余封邮件,截至目前,共收到18封回复,其中包括2封系统退信!此次融资失败的结局在我意料之中,正如我在给VC的回信中写的一样:"如我所料,我的项目受到了太多的质疑和众多的婉拒!为什么会这样?是因为我用种子期的项目,用最初级的平台计划书和天使级别的融资额度在找VC.我很早就知道VC对于项目要求的苛刻,他们永远只会锦上添花而不会雪中送炭!我一直以来都在本土(武汉)寻找天使投资,我也一直和本地的融资中介机构有密切的联系,但是他们的效率太低,本土的互联网投

VC MFC专题

MFC程序如何实现给对话框添加背景图片 MFC游戏开发笔记十 游戏中的碰撞检测进阶:地图类型&障碍物 MFC游戏开发笔记九 游戏中的碰撞判定初步&怪物运动简单AI MFC游戏开发笔记八 游戏特效的实现(二):粒子系统 MFC游戏开发笔记七 游戏特效的实现(一):背景滚动 MFC游戏开发笔记六 图像双缓冲技术:实现一个流畅的动画 MFC游戏开发笔记五 定时器和简单动画 MFC游戏开发笔记四 键盘响应和鼠标响应:让人物动起来 MFC游戏开发笔记三 游戏贴图与透明特效的实现 MFC游戏开发笔记二

VC应用程序框架

VC应用程序框架提供的强大功能,为我们的开发提供了极大的方便,利用它可以很轻松地生成应用程序的框架.许多常用功能,例如文档的创建,文件的打开,保存等操作的大部分代码都由应用程序框架来完成.这些操作对于开发软件的用户而言是透明的.微软设计Visual C++的初衷是尽量向用户提供尽可能简单的接口,但是,正是因为应用框架的这一透明性,使VC的运行流程显得非常神秘,当涉及这些VC已经提供的功能模块的软件开发时,用户(特别是那些刚刚接触VC的)不知道什么时候该使用什么接口函数,想改变VC的一些默认操作时

c++-VC++中窗口过程函数的wParam和lParam区别??

问题描述 VC++中窗口过程函数的wParam和lParam区别?? VC++中窗口过程函数的wParam和lParam区别??是什么希望解析 解决方案 我要告诉你的是方法,怎么去自学,而不是结论: 看到 https://msdn.microsoft.com/en-us/library/ms646280(VS.85).aspx 这里(google 搜索wm_keydown msdn第一个结果) wParam The virtual-key code of the nonsystem key. S