posts - 29,comments - 10,trackbacks - 0
     摘要: 网上关于ADO的使用方法很多,这边我个人就整理出一个使用ADO的方法的具体步骤:1、用#import引入ADO库文件在stdafx.h文件中添加#import "c:\program files\common files\system\ado\msado15.dll"no_namespaces rename("EOF" adoEOF")  2、 数据库连接,创建CDBConn...  阅读全文
posted @ 2009-06-18 22:58 The_Moment 阅读(881) | 评论 (0)编辑 收藏
     摘要: 指针与引用看上去完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢?
  阅读全文
posted @ 2009-06-18 20:24 The_Moment 阅读(248) | 评论 (0)编辑 收藏
     摘要: 标准模板库(The Standard Template Library, STL)定义了五种迭代器。下面的图表画出了这几种:             input         output &nb...  阅读全文
posted @ 2009-06-18 20:12 The_Moment 阅读(7538) | 评论 (0)编辑 收藏
     摘要: 详细的统计了关于VC中的数据类型及其相互之间的转换   阅读全文
posted @ 2009-06-18 18:20 The_Moment 阅读(901) | 评论 (0)编辑 收藏
     摘要: 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。
  阅读全文
posted @ 2009-06-18 12:19 The_Moment 阅读(3792) | 评论 (0)编辑 收藏
 

AppFace For VC 支持Win9X/NT/2K/XP,UNICODE/ANSI,能够对目标进程里的所有Widows标准控件,系统菜单,通用对话框等实现换肤,对非商业用途而言,它是完全免费的。关键的是AppFace的使用非常简单,很容易添加到已有的工程中。可以到它的网站 http://www.appface.com 去下载最新版本 。


AppFace
支持三种皮肤加载方式,从磁盘文件加载,从资源加载,从内存加载。下面我就说说如何从资源加载URF皮肤文件:

首先,要确保你下载了AppFace for VC 开发包,我们要用到其中的三个文件: "appface.h", "appface.dll" ,"gtclassic.urf"

接着,创建一个 VC 可执行文件工程, MDI/SDI/DIALOG/WIN32 类型的都可以,我以创建一个DIALOG 工程 ResSkin 进行说明 。将"appface.h" 拷贝到该工程目录下,"Appface.dll"拷贝到该工程的输出目录下,例如:"debug\","gtclassic.urf"拷贝到资源所在目录下。在VC 的项目管理器中进入资源管理项,在右键菜单中选择"Import","gtclassic.urf"添加进工程,资源类型设定为: "MYRESTYPE",资源ID设定为"IDR_MY_URF"。注意:资源ID 前面一定要加双引号 。


准备工作全部完成了,现在进入正题:
1.
ResSkin.cpp 中加入: #include "appface.h"
2.
CResSkinApp::InitInstance() 成员函数中添加如下代码

CResSkinApp::InitInstance()
{
...
CAppFace af ; //line 1
af.Start(_T("IDR_MY_URF"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ; //line 2

CResSkinDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();

...
af.Remove() ; //line 3

}

编译... 一切搞定 !

3. 上面是官方的做法,由于appface 也支持从内存中加载urf,所以您也可以这样做:

CResSkinApp::InitInstance()
{
...
CAppFace af ; //Init

//Load
if(HRSRC hr = ::FindResource(NULL,"IDR_MY_URF","MYTYPE"))
{
ULONG nResSize = ::SizeofResource(NULL,hr) ;
if(HGLOBAL hz = ::LoadResource(NULL,hr))
{
char* p = (char*)LockResource(hz);
if(p)
af.Start(p,GTP_LOAD_MEMORY,nResSize,NULL,NULL) ;
}
}

CResSkinDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();

...
af.Remove() ; //Release

}
你可以使用这种方法从资源中加载其它数据。


需要注意的是: 如果将URF添加进资源时,资源ID没有用双引号括起来, 加载时必须这样写:
af.Start(_T("IDR_MY_URF"),GTP_LOAD_RESOURCE,NULL,MAKEINTRESOURCE(_T("MYTYPE")),NULL)) ; //line 2



添加换皮肤按钮
添加一个Button,消息响应函数如下
void CChatDlg::OnButton2()

{

    x++;    //全局变量,static int x=3;

    int x1;

    x1=x%3;

    if(x1==1)

    {

    CAppFace af ; 

    af.Start(_T("IDR_MY_URF1"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ;

    this->MoveWindow(81,75,870,602);

    }

    if(x1==2)

    {

    CAppFace af ; 

    af.Start(_T("IDR_MY_URF2"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ;

    this->MoveWindow(81,75,854,595);

    }

    if(x1==0)

    {

    CAppFace af ;

    af.Start(_T("IDR_MY_URF"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ;

    this->MoveWindow(81,75,865,602);

    }

}

posted @ 2009-06-17 18:54 The_Moment 阅读(2118) | 评论 (0)编辑 收藏
一、
1、类型不同
BOOL为int型
bool为布尔型
2、长度不同
bool只有一个字节
BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同
bool取值false和true,是0和1的区别
BOOL取值FALSE和TRUE,是0和非0的区别
二:
bool是标准C++数据类型,可取值true和false。单独占一个字节,
如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器。

BOOL是微软定义的typedef int BOOL。与bool不同,它是一个三值逻辑,
TRUE/FALSE/ERROR,返回值为>0的整数为TRUE,0为FALSE,-1为ERROR。
Win32 API中很多返回值为BOOL的函数都是三值逻辑。比如GetMessage().
三:
大BOOL和小bool之间的区别:
1、类型不同
BOOL为int型
bool为布尔型
2、长度不同
bool只有一个字节
BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同
bool取值false和true,是0和1的区别
BOOL取值FALSE和TRUE,是0和非0的区别
4、例子
bool x=3;  //告警
bool x=1;  //正确
BOOL x=3;  //正确
BOOL x=3.3;  //告警
注:windows为了兼容问题定义的基础变量。
typedef unsigned long        DWORD;
typedef int                  BOOL;
typedef unsigned char        BYTE;
typedef unsigned short      WORD;
typedef float                FLOAT;
typedef FLOAT                *PFLOAT;
typedef BOOL near            *PBOOL;
typedef BOOL far            *LPBOOL;
typedef BYTE near            *PBYTE;
typedef BYTE far            *LPBYTE;
typedef int near            *PINT;
typedef int far              *LPINT;
posted @ 2009-06-17 15:22 The_Moment 阅读(412) | 评论 (0)编辑 收藏
假设x是一个正整数,它的值不超过65535(即1<x<=65535),请编写一个程序,将x分解为若干个素数的乘积。输入一个正整数x。输出x的素数乘积表示式,式中的素数从小到大排列,两个素数之间用“*”表示乘法。考虑素数的情况
#include <iostream>
using namespace std;
int main()
{
    
int x;
    cin
>>x;
    
for (int i=2;i<=x;i++)
    {
        
if (x%i==0)
        {
            x
/=i;
            
if(x==1)
            {
                cout
<<i;
                
break;
            }
            cout
<<i<<"*";
            i
=1;
        }
    }
    cout
<<endl;
    
return 0;
}
posted @ 2009-06-17 15:11 The_Moment 阅读(2014) | 评论 (5)编辑 收藏
这是关于C语言的一个简单的读写程序:
#include <fstream>
int main(int argc, char *argv[])
{
FILE 
*file;
    FILE 
*fw;
    
if( (file = fopen("main.cpp""r")) == NULL)
        
return -1;
    
if( (fw = fopen("text.txt""wt")) == NULL)
        
return -1;

    
char ch;
    
while( (ch=fgetc(file)) != EOF )
      {
        fputc(ch, fw);
        printf(
"%c", ch);
    }


    fclose(file);
    fclose(fw);
    
return 0;
}

这是关于C++语言的一个简单的读写程序:
#include <fstream>
#include 
<tchar.h>
#include 
<iostream>
using namespace std;

#define LEN 1000

int main(int argc, char *argv[])
{
    fstream fs;
    fs.open(_T(
"main.cpp"));

    fstream fw;
    fw.open(
"text.txt");
    
char arr[LEN] = {0};
    wchar_t temp[
2*LEN+1= {0};
    
if(!fs || !fw)
    {
        cout 
<< "Error" << endl;
        
return -1;
    }
    
while(!fs.eof())
    {
        fs.read(arr, 
sizeof(arr)-1);
        cout 
<< arr;
        fw.write(arr, 
sizeof(arr)-1);
        memset(arr, 
0sizeof(arr));

    }
    cout 
<< endl;
    fs.close();
    fw.close();
    
return 0;
}

posted @ 2009-06-17 14:05 The_Moment 阅读(428) | 评论 (0)编辑 收藏
仅列出标题
共3页: 1 2 3