 |
求救
|
|
| |
| 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; //ÓàÊý
int nShang; //ÉÌ
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次 |
|
|