VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板
VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板

目前位置: VCer资源中心 >>> VCer代码 >>> C++/MFC基础
我也来贴上一段经典代码吧!>>>


求救
 
fatal error C1083: Cannot open precompiled header file: 'Debug/zhpp.pch': No such file or directory 我在编译的时候总是通不过,错误指向"#include "stdafx.h" 请问哪位高手能告诉我为什么总是编译不了的呢?
作者:不祥 zhpeng1983张贴于2006-10-26 20:52:57.0,共阅读2096次,回复2
简单的错误
 
#include "sting.h" #include "stdafx.h" #include <stdio.h> void main( void ) { char string[80]; strcpy( string, "Hello world from " ); strcat( string, "strcpy " ); strcat( string, "and " ); strcat( string, "strcat!" ); printf( "String = %s\n", string ); } 编译后出现: E:\vcprogram\test1\test1.cpp(11) : error C2065: ’strcpy’ : undeclared identifier E:\vcprogram\test1\test1.cpp(12) : error C2065: ’strcat’ : undeclared identifier
作者:vcstudy study张贴于2007-07-27 15:42:04.0,共阅读987次,回复1
注册表函数的使用例子
 
1.新建项 例如:在HKEY_LOCAL_MACHINE\SOFTWARE\下新建一个项YanTai,再在YanTai下新建一个项BandSoft HKEY hSoftKey; HKEY hPlaceKey; HKEY hCompanyKey; //打开HKEY_LOCAL_MACHINE\SOFTWARE if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("software"), 0, KEY_WRITE|KEY_READ, &hSoftKey) == ERROR_SUCCESS) { DWORD dw; //创建并打开HKEY_LOCAL_MACHINE\SOFTWARE\YanTai if (RegCreateKeyEx(hSoftKey, _T("YanTai"), 0, REG_NONE, REG_OPTION_NON_VOLATILE, KEY_WRITE|KEY_READ, NULL, &hPlaceKey, &dw) == ERROR_SUCCESS) { //创建并打开HKEY_LOCAL_MACHINE\SOFTWARE\YanTai\BandSoft if(RegCreateKeyEx(hPlaceKey,_T("BandSoft"),0,REG_NONE, ...
作者:彭斯琪 pengsiqi1985张贴于2008-10-26 14:40:49.0,共阅读128次,回复0
VC常用数据类型转换
 
刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。我们先定义一些常见类型变量借以说明: int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="程佩君"; char temp[200]; char *buf; CString str; _variant_t v1; _bstr_t v2; 一、其它数据类型转换为字符串 短整型(int) itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 itoa(i,temp,2); ///按二进制方式转换 长整型(long) ltoa(l,temp,10); 浮点数(float,double) 用fcvt可以完成转换,这是MSDN中的例子: int decimal, sign; char *buffer; double source = 3.1415926535; buffer = _fcvt( source, 7, &decimal, &sign ); 运行结果:source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0 decimal表示小数点 ...
作者:不祥 bluejoe张贴于2006-11-10 16:42:10.0,共阅读5553次,回复6
初学者请教个问题
 
刚学vc++,我新建了一个mfc,取名"冒泡程序",我如何在冒泡程序.cpp中添加 OnLButtonDown()函数呢?我没有使用vc++.net
作者:leryang leryang张贴于2008-03-10 21:30:09.0,共阅读740次,回复5
十进制/十六进制/二进制字串转化
 
//十进制->二进制 CString DecimalToBinary(CString strDecimal) { int nDecimal = atoi(strDecimal.GetBuffer(0)); int nYushu; //&Oacute;à&Ecirc;&yacute; int nShang; //&Eacute;&Igrave; CString strBinary = ""; char buff[2]; CString str = ""; BOOL bContinue = TRUE; while(bContinue) { nYushu = nDecimal%2; nShang = nDecimal/2; sprintf(buff,"%d",nYushu); str = strBinary; strBinary.Format("%s%s",buff,str); nDecimal = nShang; if(nShang==0) bContinue = FALSE; } return strBinary; } //十六进制到二进制 CString HexToBinary(CString strHex) { int nLen ...
作者:不祥 Bccv张贴于2004-03-30 10:02:56.0,共阅读3387次,回复2
用API 作简繁体转换
 
1. 输入Big5字符,返回Gb简体字符 //--------------------------------------------------------------------------- //函数输入Big5字符,返回Gb简体字符 //--------------------------------------------------------------------------- AnsiString __fastcall Big2Gb(AnsiString sBig) { char* pszBig5=NULL; //Big5编码的字符 wchar_t* wszUnicode=NULL; //Unicode编码的字符 char* pszGbt=NULL; //Gb编码的繁体字符 char* pszGbs=NULL; //Gb编码的简体字符 AnsiString sGb; //返回的字符串 int iLen=0; //需要转换的字符数 pszBig5=sBig.c_str(); //读入需要转换的字符参数 //计算转换的字符数 iLen=MultiByteToWideChar (950 ...
作者:不祥 bluejoe张贴于2006-11-10 16:40:26.0,共阅读3058次,回复2
Windows消息值列表
 
/* * Window Messages */ #define WM_NULL 0x0000 #define WM_CREATE 0x0001 #define WM_DESTROY 0x0002 #define WM_MOVE 0x0003 #define WM_SIZE 0x0005 #define WM_ACTIVATE 0x0006 /* * WM_ACTIVATE state values */ #define WA_INACTIVE 0 #define WA_ACTIVE 1 #define WA_CLICKACTIVE 2 #define WM_SETFOCUS 0x0007 #define WM_KILLFOCUS 0x0008 #define WM_ENABLE 0x000A #d ...
作者:不祥 bluejoe张贴于2004-03-11 09:15:39.0,共阅读4167次,回复3
获取本地IP地址
 
CString CUtil::GetLocalIp() { struct hostent * phost; char ip[20]; char hostname[50]; gethostname(hostname, 50); phost = gethostbyname(hostname); char * * names; names = phost->h_aliases; char * * iplist; iplist = phost->h_addr_list; while (* iplist) { strcpy(ip, inet_ntoa(* (struct in_addr *) * iplist)); iplist++; } CString LocalIp = ip; return LocalIp; }
作者:不祥 bluejoe张贴于2004-03-02 16:40:13.0,共阅读7501次,回复4
vc2005 中 CString转化int,int 转化CString
 
CString转int方法: CString h; int a=_ttoi(h); int转化CString方法: int a=1263; CString h; h.Format(_T("%d"),a);
作者:junxi junxi张贴于2007-06-21 17:30:14.0,共阅读2504次,回复2
第一次使用
 
...第一次来不太会用这个,
作者:小忆 wjshuiyi张贴于2008-04-15 09:47:39.0,共阅读651次,回复0
最大公约数的求法
 
int mcd(int a, int b) { if( a <= 0 || b <= 0 ) return -1; int max,min; max = a > b ? a : b; min = a + b - max; int temp; //辗转相除 while( min ) { temp = min; min = max % min; max = temp; } return max; }
作者:不祥 bluejoe张贴于2004-02-20 23:47:58.0,共阅读4090次,回复6
C++ Primer(第4版)习题解答[2]
 
习题4.1 假设get_size是一个没有参数并返回int值的函数,下列哪些定义是非法的?为什么? unsigned buf_size = 1024 (a) int ia[buf_size]; (b) int ia[get_size()]; (c) int ia[4*7-14]; (d) char st[11] = "fundamental" ; 【解答】 (a)非法,buf_size是一个变量,不能用于定义数组的维数(维长度)。 (b)非法,get_size()是函数调用,不是常量表达式,不能用于定义数组的维数(维长度)。 (d)非法,存放字符串"fundamental"的数组必须有12个元素,st只有11个元素。 习题4.2 下列数组的值是什么? string sa[10]; int ia[10]; int main(){ string sa2[10]; int ia2[10]; } 【解答】 sa和sa2为元素类型为string的数组,自动调用string类的默认构造函数将各元素初始化为空字符串;ia为在函数体外定义的内置数组,各元素初始化为0;ia2为在函数体内定义的内置数组,各元素未初始化,其值不确定。 习题4.3 下列哪些定义是错误的? (a) i ...
作者:白乔 bluejoe张贴于2008-02-19 13:33:40.0,共阅读1032次,回复0
C++ Primer(第4版)习题解答
 
习题1.1 查看所用的编译器文档,了解它所用的文件命名规范。编译并运行本节的main程序。 【解答】 一般而言,C++编译器要求待编译的程序保存在文件中。C++程序中一般涉及两类文件:头文件和源文件。大多数系统中,文件的名字由文件名和文件后缀(又称扩展名)组成。文件后缀通常表明文件的类型,如头文件的后缀可以是.h或.hpp等;源文件的后缀可以是.cc或.cpp等,具体的后缀与使用的编译器有关。通常可以通过编译器所提供的联机帮助文档了解其文件命名规范。 习题1.2 修改程序使其返回-1。返回值-1通常作为程序运行失败的指示器。然而,系统不同,如何(甚至是否)报告main函数运行失败也不同。重新编译并再次运行程序,看看你的系统如何处理main函数的运行失败指示器。 【解答】 笔者所使用的Windows操作系统并不报告main函数的运行失败,因此,程序返回-1或返回0在运行效果上没有什么区别。但是,如果在DOS命令提示符方式下运行程序,然后再键入echo %ERRORLEVEL%命令,则系统会显示返回值-1。 习题1.3 编一个程序,在标准输出上打印“Hello, World”。 【解答】 #include<iostream> int main() { std::cout << "Hello, World" << std ...
作者:白乔 bluejoe张贴于2008-02-19 13:31:45.0,共阅读1034次,回复0
指针参数是如何传递内存的?
 
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1 中, Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL, 为什么? void GetMemory(char *p, int num) { p = (char *)malloc(sizeof(char) * num); } void Test(void) { char *str = NULL; GetMemory(str, 100); // str 仍然为 NULL strcpy(str, "hello"); // 运行错误 } 示例7-4-1 试图用指针参数申请动态内存 高质量C++/C 编程指南,v 1.0 2001 Page 48 of 101 毛病出在函数GetMemory 中。编译器总是要为函数的每个参数制作临时副本,指针 参数p 的副本是 _p,编译器使 _p = p。如果函数体内的程序修改了_p 的内容,就导致 参数p 的内容作相应的修改。这就是指针可以用作输出参数的原因。在本例中,_p 申请 了新的内存,只是把_p 所指的内存地址改变了,但是p 丝毫未变。所以函数GetMemory 并不能输出任何东西。事实上,每执行一次GetMemory 就会泄露一块内存,因为没有用 free 释放内存。 如果非得要用指针参数去申请内存,那么应该改 ...
作者:wlx weilaixi张贴于2007-07-02 12:54:19.0,共阅读1629次,回复2
求助:八叉树源代码
 
...我想用八叉树对三维散乱点云进行分割然后精简,自己编了很久都没编出来,想问一下,大家谁有源代码啊,可不可以共享一下,谢谢。
作者:阿珂 likezhen821张贴于2007-12-10 23:24:10.0,共阅读837次,回复0
vc中操作Xml--使用CMarkup类
 
DotNet中使用xml相对比较轻松,在vc中操作xml,有些繁琐。最近在网络上得知CMarkup比较好用,于是试了下,还好,就把部分例子写出来。以后有时间的话,再写清楚点。 //----------UserInfo.xml-------------- <?xml version="1.0" encoding="UTF-8" ?> <UserInfo> <UserID>luo</UserID> <UserID>lin</UserID> </UserInfo> 1. 生成UserInfo.xml CMarkup xml; xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); xml.AddElem("UserInfo"); xml.IntoElem(); xml.AddElem("UserID","luo"); xml.AddElem("UserID","lin"); xml.OutOfElem(); xml.Save("UserInfo.xml"); 2. 浏览特定元素 //----查看所有UserID---- CMarkup xml; xml.Load("UserInfo.xml"); BOOL b ...
作者:不祥 bluejoe张贴于2006-11-10 16:44:04.0,共阅读6826次,回复7
三种常见中文内码的转换方法
 
转篇文章给你,很好用的,直接使用函数,不用设置简体繁体对照表 三种常见中文内码的转换方法   我们平时常见的三种中文内码是:GB2312(简体中文)、GBK、BIG5(繁体中文)。网上有很多中文内码的专用转换工具。我们碰到由于内码不一致而导致的乱麻问题,用这些工具可以进行相互转换。但论坛里经常有人问如何在自己的程序中集成这些功能呢?本文将介绍如何利用 Windows 提供的API 函数来实现。转换涉及到的 API 函数主要有两个:MultiByteToWideChar 和 WideCharToMultiByte。有关这两个函数的详细文档请参考 MSDN,本文不再赘述。   本文将介绍四个转换函数分别实现如下的转换: * Big5 => GBK * GBK => Big5 * GB2312 => GBK * GBK => GB2312   有关 GB2312 =〉BIG5 的转换以及 BIG5 =〉GB2312 的转换可以通过 GBK 间接实现。先将 GB2312 转成 GBK,再将 GBK 转成 BIG5,反之亦然。当然也可以自己实现它们之间的直接转换。 // Big5 => GBK: void BIG52GBK(char *szBuf) {   if(!strcmp(szBuf, ""))   ...
作者:edog bluejoe张贴于2007-01-29 10:38:34.0,共阅读2583次,回复1
在MFC中应用CTreeCtrl控件的技巧
 
首先,我们要创建一个基本对话框的MFC工程MFC_TreeCRTL(名字随便给一个)。然后在资源视图中插入两个Dialog,ID分别为IDD_DIALOG11和IDD_DIALOG211,都更改Style属性为Child,Border属性为None,为它们建立两个类,分别命名为Cdialog11和Cdialog211,并在MFC_TreeCRTLDlg.CPP文件中包含dialog11.h和dialog211.h两个头文件。再导入几个资源图标作为树形控件节点的图标及装饰面板。最后在主面板上添加一个CTreeCtrl控件,ID为默认,并在ClassWizard中添加它的一个变量,命名为m_mytree。   接着,我们进行具体代码编写。   我们必须在CMFC_TreeCRTLDlg类中加入这些变量和函数 CDialog * m_treePages[2]; CString node_name; BOOL InitMytree();   我们还要在CMFC_TreeCRTLDlg类的构造函数中为m_treePages[2]分配空间, m_treePages[0]=new Cdialog11; m_treePages[1]=new Cdialog211; InitMytree()函数为m_mytree的初始化过程 BOOL CMFC_TreeCRTLDlg::Init ...
作者:不祥 qiaoyongbo张贴于2007-07-20 01:28:34.0,共阅读1992次,回复2
求助大牛……
 
。。。写一个程序,生成一个命令行方式的可执行文件count.exe,用于统计输出成绩小于给定分数的学生人数。该可执行文件可接受两个参数p1和p2。其中p1为文件名(含路径),包含各个学生的成绩,p2为一个整数,表示需要统计的分数值。例如: count.exe exam_result.txt 80 统计并输出exam_result.txt中所有成绩低于80分的人数。 Ps:定义Student类 class Student { string id; // 学号 string name; // 姓名 int mark; // 成绩 public: Student(const string &strID, const string &strName, int nMark = 0): id(strID), name(strName), mark(nMark) {} Student(const Student &st) : id(st.id), name(st.name), mark(st.mark) {} Student& operator = (const Student &st) { if (this != &st) { ...
作者:yaha deepsolo张贴于2007-09-03 18:51:12.0,共阅读807次,回复0

页次: 1/2页 记录总数38 9 7 [ 1 2 3 4 5 6 7 8 9 10 ] 8 :