« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
| 公告 |
谦卑,荣誉,牺牲,英勇,怜悯,诚实,精神,公正。 |
Blog信息 |
blog名称: 日志总数:183 评论数量:698 留言数量:7 访问次数:3018649 建立时间:2005年12月29日 |

| |
[编程学习]C/C++数组名与指针区别 文章收藏
newqiang 发表于 2006/1/12 11:07:36 |
C/C++数组名与指针区别
引言
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解。
想必这种误解的根源在于国内某著名的C程序设计教程。如果这篇文章能够纠正许多中国程序员对数组名和指针的误解,笔者就不甚欣慰了。借此文,笔者站在无数对知识如饥似渴的中国程序员之中,深深寄希望于国内的计算机图书编写者们,能以"深入探索"的思维方式和精益求精的认真态度来对待图书编写工作,但愿市面上多一些融入作者思考结晶的心血之作!
魔幻数组名
请看程序(本文程序在WIN32平台下编译):
1. #i nclude <iostream. |
|
[编程学习]About gettime() && getsystime() 读书笔记
newqiang 发表于 2006/1/11 15:25:13 |
1.
#include <stdio.h> #include <time.h>
void main( void ) { /* struct tm { int tm_sec;// seconds after the minute - [0,59] int tm_min;/* minutes after the hour - [0,59] int tm_hour;/* hours since midnight - [0,23] int tm_mday;/* day of the month - [1,31] int tm_mon;/* months since January - [0,11] int tm_year;/* years since 1900 int tm_wday;/* days since Sunday - [0,6] int tm_yday;/* days since January 1 - [0,365] int tm_isdst |
|
[编程学习]capture 读书笔记
newqiang 发表于 2006/1/9 11:00:01 |
HWND hwnd = ::FindWindow(NULL, "RobotSoccer"); if (hwnd == NULL) return;
// get window size RECT r; ::GetWindowRect(hwnd,&r);
int xScreen,yScreen; //check if the window is out of the screen or maximixed <Qiang> int xshift = 0, yshift = 0; xScreen = GetSystemMetrics(SM_CXSCREEN); yScreen = GetSystemMetrics(SM_CYSCREEN); if(r.right > xScreen) r.right = xScre |
|
[编程学习]simple socket 文章收藏, 读书笔记
newqiang 发表于 2006/1/8 15:49:47 |
#include "stdafx.h" #include "winsock2.h" #include <conio.h>
#define port 80
void main()
{ WSADATA wsaData; WSAStartup(MAKEWORD(2,2), &wsaData); SOCKET sock; sock = socket(AF_INET, SOCK_STREAM, 0); //错误处理 if(sock==INVALID_SOCKET) { printf("SOCKET有问题. \r\n"); } sockaddr_in sin; sin.sin_addr.s_addr = inet_addr("61.140.60.90"); sin.sin_fa |
|
[编程学习]file---2 文章收藏, 网上资源
newqiang 发表于 2006/1/7 22:36:02 |
字符串读写函数fgets和fputs
一、读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针); 其中的n是一个正整数。表示从文件中读出的字符串不超过 n-1个字符。在读入的最后一个字符后加上串结束标志'\0'。例如:fgets(str,n,fp);的意义是从fp所指的文件中读出n-1个字符送入字符数组str中。
[例10.4]从e10_1.c文件中读入一个含10个字符的字符串。
#include<stdio.h> main() { FILE *fp; char str[11]; if((fp=fopen("e10_1.c","rt"))==NULL) { printf("Cannot open file strike any key exit!"); getch(); exit(1); } fgets(str,11,fp); printf("%s",str); fcl |
|
[编程学习]文件 文章收藏, 网上资源
newqiang 发表于 2006/1/7 22:34:13 |
所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。
普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以是源文件、目标文件、可执行程序; 也可以是一组待输入处理的原始数据,或者是一组输出的结果。对于源文件、目标文件、 可执行程序可以称作程序文件,对输入输出数据可称作数据文件。
设备文件是指与主机相联的各种外部设备,如显示器、打印机、键盘等。在操作系统中,把外部设备也看作是一个文件来进行管理,把它们的输入、输出等同于对磁盘文件的读和写。 通常把显示器定义为标准输出文件, 一般情况下在屏幕上显示有关信息就是向标准输出文件输出。如前面经常使用的printf,putchar 函数就是这类输出。键盘通常被指定标准的输入文件, 从键盘上输入就意味着从标准输入文件上输入数据。 |
|
[编程学习]Visual C++6.0 API函数操作技巧集 文章收藏, 网上资源
newqiang 发表于 2006/1/7 21:17:58 |
我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了Windows系统中有关实现对鼠标和光标进行操作的API函数,并给出了在Visual C6.0++中利用所介绍的API函数实现对鼠标和光标的操作的代码。
一、隐藏和显示光标
函数: int ShowCursor ( BOOL bShow );
参数 bshow,为布尔型,bShow的值为False时隐藏光标,为True时显示光标;该函数的返回值为整型,为鼠标隐藏或显示的指数器;返回值大于等于0时显示光标,否则隐藏鼠标;如果安装了鼠标初值为0。
实例:
在基于对话框的应用程序中放置两个Button,名称分别为HideCursor和ShowCursor;再放置一个CStatic控件,名称为Label1,用于显示光标计数器。
源程序为:
// 使光标计数器的值减一,如果小于零,隐藏光标 void CMyTestDlg::OnHideCursor() { int i; i |
|
[编程学习]API函数 网上资源
newqiang 发表于 2006/1/6 20:54:36 |
1. API之网络函数
WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 WNetDisconnectDialog 启动一个标准对话框, |
|
[编程学习]STL实践指南 网上资源
newqiang 发表于 2006/1/5 21:55:24 |
STL实践指南
作者:Jeff Bogan 翻译:周翔 出处:http://www.codeproject.com/vcpp/stl/PracticalGuideStl.asp
译者注
这是一篇指导您如何在Microsoft Visual&nb |
|
[编程学习]C语言测试:想成为嵌入式程序员应知道的0x10个基本问题 网上资源
newqiang 发表于 2006/1/5 20:31:07 |
C语言测试:想成为嵌入式程序员应知道的0x10个基本问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这个愚蠢的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不上在嵌入式系统上。如果上述任何问题的答案是“是”的话,那么我知道我得认真考虑我是否应该去做这份工作。 从面试 |
|
[编程学习]C/C++头文件一览 网上资源
newqiang 发表于 2006/1/5 20:30:06 |
C/C++头文件一览
C/C++头文件一览 C、传统 C++
#include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> //定义错误码 #include <float.h> //浮点数处理 #include <fstream.h> //文件输入/输出 #include <iomanip.h> //参数化输入/输出 #include <iostream.h> //数据流输入/输出 #include <limi |
|
[编程学习]file operation 读书笔记
newqiang 发表于 2006/1/4 13:27:00 |
#include <fstream.h> #include <stdio.h>
//using namespace std; void readf(fstream f,char* fd); void writef(fstream f,char* fd);
void main() { fstream outfile; char filedirection[20] = "f1.dat"; //readf(outfile,filedirection); writef(outfile,filedirection); }
void readf(fstream f,char* fd) { //f.open("f1.dat",ios::out|io |
|
[编程学习]<graphics.h>函数 文章收藏
newqiang 发表于 2006/1/2 11:14:46 |
库<graphics.h>函数 作者:fengshaoyang 发表时间:2003-9-9 15:33:00
本人对库函数<graphics.h>中的一些函数不太清楚。请高手列出一些,并指出其功能!谢谢! 作者:s_tiger 第1楼
图形函数 Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics. h 中, 本节主要介绍图形模式的初始化、独立图 |
|
[编程学习]关于list control 和 tree control 的DD 读书笔记, 心得体会
newqiang 发表于 2006/1/1 13:49:12 |
//////////////////////////////////////////// CListCtrl* pmyListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST1); DWORD dwStyle = GetWindowLong(pmyListCtrl->m_hWnd,GWL_STYLE); SetWindowLong(pmyListCtrl->m_hWnd,GWL_STYLE,dwStyle|LVS_REPORT);
DWORD styles = pmyListCtrl->GetExtendedStyle(); pmyListCtrl->SetExtendedStyle(styles|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
TCHAR rgtsz[3][10] = {_T("Column1"),_T("Column2"),_T("Colu |
|
[编程学习]__stdcall约定 网上资源, 软件技术
newqiang 发表于 2005/12/31 22:15:14 |
__stdcall约定
如果通过VC++编写的DLL欲被其他语言编写的程序调用,应将函数的调用方式声明为__stdcall方式,WINAPI都采用这种方式,而C/C++缺省的调用方式却为__cdecl。__stdcall方式与__cdecl对函数名最终生成符号的方式不同。
若采用C编译方式(在C++中需将函数声明为extern "C"),__stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数,形如_functionname@number |
|
[编程学习]总结:VC小知识! 网上资源, 软件技术
newqiang 发表于 2005/12/31 21:08:02 |
总结:VC小知识!
(1) 如何通过代码获得应用程序主窗口的 指针? 主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。 AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED) //使程序最大化.
(2) 确定应用程序的路径 Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。 Example: TCHAR exeFullPath[MAX_PATH] // MAX_PATH在API中定义了吧,好象是 128 GetModuleFileName(NULL,exeFullPath,MAX_PATH)
(3) 如何在程序中获得其他程序的 图标? 两种方法: (1) SDK函数 SHGetFileInfo 或使用 ExtractIcon获得图标资源的 handle, (2) SDK函数 SHGet |
|
[编程学习]教你理解复杂的C/C++声明 网上资源, 软件技术
newqiang 发表于 2005/12/31 21:06:57 |
教你理解复杂的C/C++声明
作者 Vikram A Punathambekar 关键字 C C++ 原作者姓名 Vikram A Punathambekar 文章原始出处 http://www.codeproject.com/cpp/complex_declarations.asp
读者评分 6 评分次数 2
正文
陆其明 译
原文: http://www.codeproject.com/cpp/complex_declarations.asp 作者:Vikram A Punathambekar
介绍
曾经碰到过让你迷惑不解、类似于int * ( |
|
[编程学习]Visual C++中的图形特技 网上资源, 软件技术
newqiang 发表于 2005/12/31 21:05:30 |
Visual C++中的图形特技 选择自 simb 的 Blog 关键字 Visual C++中的图形特技 出处 随着计算机信息表示及实现的多媒体化,在许多学习软件、游戏软件,以及多媒体课件制作软件中,经常使用各种图形显示技巧,如图形的推拉、交错、雨滴状、百页窗、积木随机堆叠等显示模式。这样使画面变得更为生动活泼,更能吸引用户,也为更好地发挥软件的功能奠定了基础。本文就Visual C++ 6.0中实现图形的各种显示技巧的原理及具体方法做些探讨。基本原理 在Visual C++6.0中,显示位图的方法及过程如下:
1. 显示程序资源中的位图(位图的所有数据均存在于可执行文件中)
(1)从资源中装入位图
● 定义位图对象数据成员CBitmap m_Bitmap;
● 调用CBitmap成员函数LoadBit |
|
[编程学习]vc++的若干实用小技巧 网上资源, 软件技术
newqiang 发表于 2005/12/31 21:04:19 |
vc++的若干实用小技巧
1:使用vc开发项目时,常会遇到这种情况: 即明明只改动了一个文件,却要把整个项目全部重新编译连接一次。刚刚连接好,一运行,又提示重新编译连接一次,非常讨厌。这是因为出现了未来文件的缘故。 解决方法: 找出对应文件夹下的debug目录,将未来文件全部delete, 再rebuild all一次。(未来 文件即其创建和修改时间都比系统时间靠后) 2:有时,workspace中的classview显示混乱。其表现如下: (1):添加的成员变量或函数不能显示; (2):即使显示出来了变量或函数,双击后不能跳至正确的位置。 解决方法: 删除.ncb文件,再rebuild all.
3:如何干净的删除一个类? 1:先从workspace中的FileView中删除对应的.h和.cpp文件。 2.再关闭项目,从实际的文件夹中删除对应的.h和.cpp文件。 3.灾删除.clw文件。 打开项目,rebuild a |
|
[编程学习]VC Studio 使用技巧大全 软件技术, 校园生活
newqiang 发表于 2005/12/30 16:41:16 |
VC Studio 使用技巧大全 2.0版本 这是我网上东抓一条西抓一条,看起来真累,再加上一些自已的心得,所以今天再次进行整理出来与大家分享! 黄森堂(vcmfc). 1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号<>)前面,键入快捷键“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。 2.查看一个宏(或变量、函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的Go To Defition Of …),如果没有建立Browse files,会出现提示对话框,确定,然后就会跳到定义那些东西的地方。 相当可喜的是,它也可以看到Microsoft定义的系统宏,非常good.
3.格式化一段乱七八糟的源代码 选中那段源代码,按ATL+F8。 |
|
[编程学习]xml和html有什么区别 随笔, 软件技术, 科学研究, 校园生活
newqiang 发表于 2005/12/29 16:07:53 |
XML应用概述
截至目前为止,我们已经介绍了与XML相关的各种标准和技术。限于篇幅,对其中许多内容未能展开介绍,只是起到一个领路的作用,还需要各位读者在进行实际开发中,再参考更详细更权威的资料。在最后一章里,我们将简要介绍一下目前XML在各个领域的应用以及它的发展前景。一方面,XML的广泛应用和广阔前景恰恰是我们学习XML的最好理由;另一方面,我们曾经在各个章节中曾经反反复复地强调了XML的优点,而XML在实际应用中所发挥的巨大作用也正是对前面内容最好的证明和总结。
虽然人们对XML的某些技术标准尚有争议(也许这就是许多标准迟迟不能推出的原因),但是人们已经普遍认识到XML的作用和巨大潜力。作为SGML的简化子集,XML在SGML的应用领域依然有它的用武之地,如:文档、信息管理、出版系统等。另外,XML自身的特点决定了它在SGML的应用领域外拓展出了更为广阔的天地。
考察现在的XML应用,可以将它们分为以下几 |
|
|