摘要: 一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。 具体而言,当参数分别如下时,sizeof返回的值表示的含义如下: 数组——编译时分配的数组空间大小; 指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为 阅读全文
posted @ 2010-02-07 15:23 靓点博客 阅读(113) 评论(0) 推荐(0) 编辑
摘要: WindowsNT和Windows2000的套接字架构对于开发大响应规模的Winsock应用程序而言,对WindowsNT和Windows2000的套接字架构有基本的了解是很有帮助的。与其他操作系统不同的是,WinNT和Win2000的传输协议层并不直接给应用程序提供socket风格的接口,不接受应用程序的直接访问。而是实现了更多的通用API,称为传输驱动接口(Transport Driver Interface,TDI).这些API把WinNT的子系统从各种各样的网络编程接口中分离出来。然后,通过Winsock内核模式驱动提供了sockets方法(在AFD.SYS里实现)。这个驱动负责连接和 阅读全文
posted @ 2009-12-18 09:56 靓点博客 阅读(312) 评论(0) 推荐(0) 编辑
摘要: VC Listview(list Control)在Release版本下无法动态改变图标的解决方法首先我们可以一个小例子说明ImgList.Create(16, 16, ILC_COLOR24, 0, 0);CBitmap bitmap_ok, bitmap_err;bitmap_ok.LoadBitmap(IDB_OK);bitmap_err.LoadBitmap(IDB_ERR);ImgList.Add(&bitmap_ok, (CBitmap *)NULL);ImgList.Add(&bitmap_err, (CBitmap *)NULL);m_list.SetImage 阅读全文
posted @ 2009-12-12 14:41 靓点博客 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 这两天项目中的DLL忽然无法调试,在DLL工程源文件中设断点调试时被忽略无效.在折腾了好些时间总算找到了解决方法,现在公布一下解决方法主要是通过重新格式化源文件解决问题, 即在VS2008中先将DLL工程的一些源文件打开再把内容全选(Ctrl+A),然后在菜单 “编辑”-“高级”-“设置选定内容的格式”。 非常无语的把问题解决了!另附网上还有两个解决方法:1,将出问题的文件用notepad打开,然后另存为Unicode编码,就可以解决!(试过一两个文件就放弃没全试-因为相当麻烦,不知是否有效)2将“工具”-“选项”-“调试”,“要求源文件与原始版本完成匹配”去掉勾 或者设置该断点。(试过,这个 阅读全文
posted @ 2009-11-09 14:48 靓点博客 阅读(732) 评论(0) 推荐(0) 编辑
摘要: 一、C语言程序执行步骤在C语言中,大约的步骤如下:1, 全局变量内存分配 例子如下:#include <iostream.h>int a=88;main(){cout<<a<<endl;}如果我们在main前设置断点,我们就会发现,在进入main之前,a就已经存在了。也就是说像a这样的全局变量在进入main函数前已经创建,并初始化。2, 进入main函数二、MFC程序的运行步骤(主要是初始化)打开一个MFC APPWizard(exe)工程,跟踪其执行步骤,可以发现,是以下顺序:1)CXXApp中的全局变量定义(在WinMain()函数之前定义的全局变量)C 阅读全文
posted @ 2009-07-30 09:30 靓点博客 阅读(381) 评论(0) 推荐(0) 编辑
摘要: MFC中一个完整的应用一般由四个类组成:CWinApp应用类,CFrameWnd窗口框架类,CDocument文档类,CView视类。在程序运行时CWinApp将创建一个CFrameWnd框架窗口实例,而框架窗口将创建文档模板,然后有文档模板创建文档实例和视实例,并将两者关联。一般来讲我们只需对文档和视进行操作,框架的各种行为已经被MFC安排好了而不需人为干预接下来看看如何在程序中得到各种对象的指针: 全局函数AfxGetApp可以得到CWinApp应用类指针 AfxGetApp()->m_pMainWnd为框架窗口指针 在框架窗口中:CFrameWnd::GetActiveDocume 阅读全文
posted @ 2009-07-16 17:20 靓点博客 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 一,定义://1. 标准方法:varMyArr: array[0..10] of Integer; //定义静态一维数组//2. 根据预定义类型来声明数组:type TMyArr = array[0..10] of Integer; //先定义一个数组类型var MyArr: TMyArr; //再定义静态数组//3. 在非过程区可以直接赋值:MyArr: array[0..2] of Integer = (11,22,33);//4. 多维数组:MyArr: array[0..2, 0..2] of Integer;begin MyArr[1,2] := 100;end二,求数组长度:con 阅读全文
posted @ 2009-06-30 11:52 靓点博客 阅读(759) 评论(0) 推荐(0) 编辑
摘要: 在标准C++以前,都是用#include<iostream.h>这样的写法的,因为要包含进来的头文件名就是iostream.h。标准C++引入了名字空间的概念,并把iostream等标准库中的东东封装到了std名字空间中,同时为了不与原来的头文件混淆,规定标准C++使用一套新的头文件,这套头文件的文件名后不加.h扩展名,如iostream、string等等,并且把原来C标准库的头文件也重新命名,如原来的string.h就改成cstring(就是把.h去掉,前面加上字母c),所以头文件包含的写法也就变成了#include <iostream>。 并不是写了#include 阅读全文
posted @ 2009-06-30 09:45 靓点博客 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 最近在用delphi将一个图形控件以activex方式做成可以在IE上运行的OCX,遇到了些问题,在此备忘一下一 OnDestroy事件运行不了!释放问题通常我们会在窗口的OnDestroy里面写程序中的释放代码,但ActiveForm,当窗口销毁时确不会调用OnDestroy事件解决方法:重载DoDestroy函数,如下:procedure DoDestroy; override;//释放的代 写在这里面二 ActiveForm与普通Form的传参问题解决方法一:procedure TActiveFormX.Button1Click(Sender: TObject);var f: TForm 阅读全文
posted @ 2009-04-10 15:45 靓点博客 阅读(251) 评论(0) 推荐(0) 编辑
摘要: delphi2009中创建一个简单的OCX控件例子一,创建工程从File-New-orher-ActiveX-ActiveXLibrary后,会创建一个类型库的project1.DLL工程这时只要再加入一个ActiveForm,IDE自动将工程转成了project1.ocx在ActiveForm中拉入一个edit和一个button,名字默认即可.编辑Type Library,加入一个edtText属性在ActiveForm中编辑Get_edtText和Set_edtText的加上以下实现代码function Ttest.Get_edtText: WideString;begin Result: 阅读全文
posted @ 2009-03-24 14:38 靓点博客 阅读(1216) 评论(0) 推荐(0) 编辑