随笔分类 - C++
摘要:GetModuleFileNameHMODULE hModule = ::GetModuleHandle(NULL);if (hModule != NULL){ ::GetModuleFileName(hModule, strRet.GetBuffer(MAX_PATH), MAX_PATH); strRet.ReleaseBuffer();}GetModuleFileName函数在开发软件的过程里,经常需要把数据保存到当前执行文件路径下面,或者读取当前执行文件路径下的一些配置信息。这时就需要从当前模块里获取所在的目录路径,以便进行固定的位置操作文件。要解决这个需求,就需要调用API函数Get
阅读全文
摘要:静态变量函数中使用了static变量,因为static变量的特征,这样的函数被称为:带“内部存储器”功能的的函数 。在函数中是必须要使用static变量的,比如当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。静态函数(内部函数)函数本质上是全局的,默认可以被所有其他函数引用.内部函数只能在本文件中被引用的函数.定义内部函数时,在函数名和函数类型的前面加static.外部函数定义函数时,如果在函数首部最左端冠以关键字extern,标识次函数为外部函数,C语言规定,如果在定义函数是省略extern,则隐含为外部函数.在调用此函数的文件
阅读全文
摘要:.clw 支持ClassWizard .ncb 支持ClassView .opt 保存工作空间的配置 .aps 支持ResourceView .bsc 浏览器信息文件 .dsp 项目文件 .dsw 工作空间文件 .mak 外部的创建文件 .plg 建立日志文件
阅读全文
摘要:在View类中动态创建一个Edit控件如下: editT1.Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,CRect(0,0,50,20),this, IDC_EDITT1); 现在想实现类似对话框中的数据交换功能。 我的方法是: void CMatlabPrintView::DoDataExchange(CDataExchange* pDX) { // TODO: Add your specialized code here and/or call the base class CView::DoDa
阅读全文
摘要:voidCRegisterDialog::DoDataExchange(CDataExchange*pDX)...{CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CRegisterDialog)DDX_Control(pDX,IDC_INCOME,m_ctrlIncome);DDX_LBString(pDX,IDC_INCOME,m_strIncome);DDX_CBString(pDX,IDC_KIND,m_strKind);DDX_Check(pDX,IDC_MARRIED,m_bMarried);DDX_Text(pDX,IDC_NAME,m
阅读全文
摘要:COM原理笔记之一 —— 概述篇COM(组件对象模型,Compent Object Model)是Microsoft提出来的组件标准,它不仅定义了组件程序之间进行交互的标准,并且也提供了组件程序进行所需要的环境。一、两种进程模型:进程内组件:以动态链接库的形式出现(.dll);进程外组件:以可执行程序的形式出现(.exe);进程内模型的优点是效率高,但组件不稳定会引起客户进程崩溃,因此组件可能会危及客户。进程外模型的优点是稳定性好,组件进程不会危及客户程序,但效率相对较低。二、组件软件与软件组织:组件软件:是指按组件模型组合而得到的软件。软件组织:是指构成组件软件的每个组件。三、对象与接口:对
阅读全文
摘要:COM是Component Object Model (组件对象模型)的缩写。 用户需要什么样的软件产品?这是一个多选题,但高效,健壮是肯定会被选种的。作为一名软件开发人员如何做才能满足用户的需要呢?必须要保证升级应用时不破坏与以前版本的向后兼容性。必须做到扩展系统服务时不依赖特定的操作系统。面向对象的程序设计显然是一次革命性的改变。采用面向对象的设计方法我们可以很容易的把要解决的问题事物抽象成各种类,并将内部动作封装隐藏起来,只提供一些接口。但这并没有完全解决我们的问题。昨天我在《程序员》杂志上看到,现在是后OO时代,那OO以后是什么呢?应该是面向组件吧。 COM component(CO.
阅读全文
摘要:首先说一下什么是DC(设备描述表) 解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制图形之前需要获取DC的句柄HDC,并在不继续使用时释放掉。 在c++ 编程中常会见到HDC,CDC,CClientDC,CPaintDC,CWindowDC这样的类 HDC是DC的句柄,API中的一个类似指针的数据类型. CDC是MFC的DC的一个类 CDC等设备上下分类,都含有一个类的成员变量:m_nHdc
阅读全文
摘要:Normal 0 0 2 false false false MicrosoftInternetExplorer4 MFC中LineTo函数的作用及用法由当前坐标点画一直线至目标坐标点函数原型BOOL LineTo(HDC hdc, int nXEnd, int nYEnd);运用CPen pen(PS_SOLID,3,RGB(0,255,255)); CPen* pOldPen; pOldPen=dc.SelectObject (&pen); HDC hdc;CClientDC dc(this);dc.MoveTo(pointOld); dc.LineTo(pointNew); dc
阅读全文
摘要:当你调用关于activex控件中的相关方法时,你要导入此控件到程序中,此时就会在工程中生成一个关于此控件调用的一个伪调用类,其中的cpp中调用每个方法都是通过InvokeHelper调用其中的dwDispID值来定位方法的地址的!因此,可以将InvokeHelper调用理解为定位activex控件中的相关方法的一种手段!invokehelper: 用于调用OLE 的IDispatch 接口方法的一个封装方法。CWnd::InvokeHelperCall this member function to invoke the ActiveX Control method or property s
阅读全文
摘要:Normal 0 0 2 false false false MicrosoftInternetExplorer4 静态常量的问题楼主waxic(waxic)2006-03-06 11:05:24 在 C/C++ / C++ 语言 提问在类定义中定义一个静态常量,在友员函数中不能访问! 头文件 class String { private: ....... static const int CIN=100; ....... public: ...... friend void function1(String & st) ...... }; 类描述文件中 void function1(
阅读全文
摘要:静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。这一章里,我们主要讲述类的静态成员来实现数据的共享。静态数据成员 在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安全性。因此,静态成员是类的所有对象中共享的成员,而不是某个对象的成员。使用静态数据成员可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,保证所有对象存取更新后.
阅读全文
摘要:“类中的非静态const常量,引用都必须在初始化成员列表中进行初始化”与编译器有关
阅读全文
摘要:static静态变量的理解静态变量 类型说明符是static。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直到整个程序运行结束(相反,而aut...
阅读全文
摘要:void CTurningParameterDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTurningParameterDlg) DDX_Control(pDX, IDC_LIST_FILE, m_ctlFileList); //}}AFX_DATA_MAP}
阅读全文
摘要:在学习这一章内容前我们已经学习过了类的构造函数和析构函数的相关知识,对于普通类型的对象来说,他们之间的复制是很简单的,例如: int a = 10; int b =a; 自己定义的类的对象同样是对象,谁也不能阻止我们用以下的方式进行复制,例如:#include<iostream> usingnamespacestd; classTest { public: Test(inttemp) { p1=temp; } protected: intp1; }; voidmain() { Testa(99); Testb=a; } 普通对象和类对象同为对象,他们之间的特性有相似之处也有不同之处
阅读全文
摘要:VC的命名规则 一、程序风格:1、严格采用阶梯层次组织程序代码:各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如:2、提示信息字符串的位置在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。3、对变量的定义,尽量位于函数的开始位置。二、命名规则:1、变量名的命名规则①、变量的命名规则要求用“匈牙利法则”。即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。即: 变量名=变量类型+变量
阅读全文
摘要:renren6250(刀客) 的说法是比较全面的. 对于简单数据类型int,char等的数组使用delete 还是 delete[]是完全一样的,对于类的实例的数组必须使用delete[]; C++随笔 delete void * 用了这么久的C++,才发现C++是目前所有的编成语言中最为复杂的一种,C++之路, 艰难.....delete void *这一操作对于一些简单的系统内建类型不会有问题,但如果void*所指向的对象在析构函数里要释放,进行此造作会丢失内存,因为它不执行析构函数,例如:class CEntity{public:CEntity(char flag);~CEntity()
阅读全文
摘要:静态成员变量及方法的调用 收藏 先看代码:package lession1;import java.io.IOException;public class HelloWorld {private static int a = 10;private int b;public static void main(String[] args) throws IOException,Exception{ //静态变量或方法可直接调用 hello1(); System.out.println(a); //静态变量或方法也可以通过类名.成员名调用 HelloWorld.hello1(); System.ou
阅读全文
摘要:Compiler Error C2724Error Message 'identifier' : 'static' should not be used on member functions defined at file scopeStatic member functions should be declared with external linkage.The following sample generates C2724:Copy Code// C2724.cppclass C { static void func();};static void
阅读全文