C/C++
文章平均质量分 74
yuguanglou
这个作者很懒,什么都没留下…
展开
-
Visual C++ 中的ODBC编程
ODBC(Open Database Connectivity,开放式数据库连接),是一种用来在相关或不相关的数据库管理系统(DBMS)中存取数据的标准应用程序接口(API)。本文给出Windows 95 环境下用Visual C++ 进行ODBC 编程的具体方法及技巧。---- 关键字:ODBC,Visual C++,Windows 编程。---- 一.概述---- ODBC 是一种使用SQL原创 2004-12-04 23:11:00 · 1476 阅读 · 0 评论 -
模板类的练习——队列
队列的练习,单链队列、循环队列以及队列的各种基本操作。#pragma once#include #include #define MAXQSIZE 10templateclass CQueue{public : CQueue(); ~CQueue(); //----------单链队列-------队列的链式存储结构 typedef struct _tagQNode { T data;原创 2004-11-18 23:17:00 · 1547 阅读 · 2 评论 -
c++入门学习笔记指针篇上
指针优点: 1。为函数提供修改调用变元的手段; 2。支持C++动态分配子程序 3。可以改善某些子程序的效率 4。为动态数据结构(如二叉树、链表)提供支持 注:指针为程序引入了一层间接性,可以操控指针而不直接操控对象。 1。可操控指针内含的地址也可操控指针所指的对象 2。指针可能并不指向任何对象,写*pi时,可能会使程序在执行期错误,如寻址到某个对象,则提领操作,不指向任何对象,会出错,所以在提领前原创 2004-11-15 12:03:00 · 1495 阅读 · 1 评论 -
C++常用排序算法
//选择排序法SelectionSort(int arr[],int n) template void SelectionSort(T arr[],int n) { int smallIndex; //表中最小元素的下标 int pass,j; //用来扫描子表的下标 T temp; //用来交换表元素的临时变量 //pass的范围是0~n-2原创 2004-11-15 11:56:00 · 1347 阅读 · 0 评论 -
VC++中进程与多进程管理的实现方法
摘要: 本文主要介绍了多任务管理中的多进程管理技术,对进程的互斥运行、子进程的创建与结束等作了较详细的阐述。 关键词: VC++6.0;进程;环境变量;子进程 进程 进程是当前操作系统下一个被加载到内存的、正在运行的应用程序的实例。每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了原创 2004-11-15 11:52:00 · 2080 阅读 · 0 评论 -
模板类的练习——栈
学C++ 的时候写的模板类以作为对C++的练习,#include #include #define stack_init_size 100templateclass CStack{public: CStack(void); ~CStack(void);public: // ------------栈的顺序存储表示-------------- static struct _tagStack {原创 2004-11-18 23:16:00 · 1368 阅读 · 0 评论 -
我眼中的指针--学习指针不可少的好文章
为初学者服务。这是我的帖子的宗旨。我也是个初学者(强调了无数遍了) ,我以我的理解把初学者觉得难懂的东西用浅显的语言写出来。由于小学时语文 没学好,所以竭尽全力也未必能达到这个目的。尽力而为吧。 指针是c和c++中的难点和重点。我只精通dos下的basic。c语言的其它各种特 性,在basic中都有类似的东西。只有指针,是baisc所不具备的。指针是c的灵魂 。 我不想重复大多数书上说得很清楚的东原创 2004-11-15 12:00:00 · 5695 阅读 · 5 评论 -
一段清屏的c++代码
// clrscr.h // // adapted from // Vincent Fatica // vefatica@syr.edu // Syracuse University Mathematics // http://barnyard.syr.edu/~vefatica/ // // by Shannon Bauman // Augus原创 2004-11-15 11:45:00 · 1970 阅读 · 0 评论 -
如何使用make
在shell的提示符号下,若键入"make",则它会到目前的目录下找寻Makefile这个档案 。然後依照Makefile中所记录的步骤一步一步的来执行。在我们写程式的时候,如果 事先就把compiler程式所需要的步骤先写在Makefile中的话,想要compiler程式的时候 就只要打入make的指令。只要程式无误的话,就可以获得所需要的结果了! Makefile的格式: (1)注解原创 2004-11-14 15:00:00 · 802 阅读 · 0 评论 -
二叉树算法
#include #include #include #define ElementType int//node structure constructortypedef struct bt { ElementType data; struct bt *lchild, *rchild;} BinaryTreeNode,*BTRoot;//function declearInOrde原创 2004-11-14 00:19:00 · 959 阅读 · 0 评论 -
螺旋算法
程序代码:#include #include #define DOWN 0#define LEFT 1#define UP 2#define RIGHT 3//N*N矩阵#define N 5void printMatrix(int *a[], int n) { int i, j; for (i = 0; i for (j原创 2004-11-13 23:52:00 · 1167 阅读 · 1 评论 -
玩转Windows /dev/(k)mem
1、介绍2、介绍WINDOWS对象 2.1 它们是什么 2.2 它们的结构 2.3 对象操作3、介绍 /Device/PhysicalMemory 3.1 对象 3.2 需要写权限?4、玩 /Device/PhysicalMemory 4.1 读/写内存 4.2 什么是Callgate 4.3 不用驱动运行ring0代码 4.4 深入到进程表 4.5 Bonus Track5、原创 2004-11-13 16:25:00 · 1202 阅读 · 0 评论 -
排序算法小结
排序小结 排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。 而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将给出详细的说明。 对于排序的算法我想先做一点简单的介绍,也是给这篇文章理一个提纲。 我将按照算法的复杂度,从简单到难来分析算法。 第一部分是简单排序算法,后面你将看到他们的共原创 2004-11-18 23:27:00 · 1871 阅读 · 0 评论 -
VC中的一些常用方法
VC中的一些常用方法(20条)//一、打开CD-ROMmciSendString("Set cdAudio door open wait",NULL,0,NULL);//二、关闭CD_ROMmciSendString("Set cdAudio door closed wait",NULL,0,NULL);//三、关闭计算机OSVERSIONINFO OsVersionInf原创 2004-11-22 23:38:00 · 1874 阅读 · 2 评论 -
BSD套接口篇(上)(翻译)
Linux网络编程,第一部分BSD套接口篇 ——这是关于如何用各种可以得到的接口为Linux开发网络程序的系列文章的第一篇。就像大多数Unix-based的操作系统一样,Linux支持将TCP/IP作为本地的网络传输协议。在这个系列中,我们假定你已经比较熟悉Linux上的C编程和Linux的一些系统知识诸如signals,forking等等。 这篇文章是关于如何用BSD套接口创建网络程翻译 2004-11-15 18:36:00 · 1214 阅读 · 1 评论 -
C++是什么?它与C语言是什么关系?
简单地说,C++就是C加、加。也就是说,它是C语言的超集。作为一个超集意味着当一个编写良好的ANSI Standard C 语言程序被提交到一个C++语言编译程序时,它可以被正确地编译。通常,*.C文件被认为是C编译模式,而*.CPP被认为是 C++编译模式。如果你是一个有经验的C程序员,那么不要被C++的特性吓倒,因为C++语言产生初衷就是为了让C程序员逐渐地过渡到面向对象的编程方法。如果你只是原创 2004-11-15 11:24:00 · 1755 阅读 · 1 评论 -
在NT系统里面隐藏服务
1. 内容2. 介绍3. 文件 3.1 NtQueryDirectoryFile 3.2 NtVdmControl4. 进程5. 注册表 5.1 NtEnumerateKey 5.2 NtEnumerateValueKey6. 系统服务和驱动7. 挂钩和扩展 7.1 权限 7.2 全局挂钩 7.3 新进程 7.4 DLL8. 内存9. 句柄 9原创 2004-11-13 16:33:00 · 962 阅读 · 1 评论 -
基于IMD的包过滤防火墙原理与实现
一、前言二、IMD中间层技术介绍三、passthru例程分析四、部分演示代码五、驱动编译与安装六. 总结一、前言 前段时间,在安全焦点上看到了TOo2y朋友写的《基于SPI的数据报过滤原理与实现》,很是不错。文章中提到的基于SPI的数据报拦截技术是在用户级的。用户级的拦截有其优势,实现方便、便于移植、通用性强,但是,用户级并不能得到所有的数据报。本文提到的基于IMD的数据报过滤则是属于内核级原创 2004-11-13 12:15:00 · 787 阅读 · 1 评论 -
模板类的练习——排序小结
搜集了几个常用的排序算法:如直接插入排序,折半插入排序,希尔排序,起泡排序,快速排序,选择排序,堆排序,主要参照《数据结构(C语言版)》#define MAXSIZE 100templateclass CSortArithmethic{public: static struct _tagSqList { T r[MAXSIZE]; int length; };private: typede原创 2004-11-24 01:02:00 · 1512 阅读 · 0 评论 -
模板的练习---二叉树
以下是对二叉树的基本操作的实现,如创建无序二叉树,二叉排序树,三种递归遍历和非递归遍历,查找,插入,删除,以及树叶的计算和树的深度的计算等。#include "iostream.h"#include "stdlib.h"#include "stack.h"#pragma oncetemplateclass CBiTree{public: CBiTree(void) { } ~CBiTree原创 2004-11-24 01:01:00 · 1355 阅读 · 0 评论 -
ping 命令工作原理详细解析
ping的原理就是首先建立通道,然后发送包,对方接受后返回信息,这个包至少包括以下内容,发送的时候,包的内容包括对方的ip地址和自己的地址,还有序列数,回送的时候包括双方地址,还有时间等,主要是接受方在都是在操作系统内核里做好的,时刻在监听,提供一段c程序的代码,希望对大家有用。#include #include #include #include #include #inc原创 2004-11-24 00:37:00 · 2555 阅读 · 0 评论 -
算法的设计方法
一、迭代法 迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行: (1) 选一个方程的近似根,赋给变量x0; (2) 将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0; (3) 当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。 若方程有根,并且用上述方法计算出来的近原创 2004-11-24 00:17:00 · 2709 阅读 · 1 评论 -
银行家算法实现
特别申明:转载一位大哥的程序一.算法介绍:**数据结构:1.可利用资源向量Available2.最大需求矩阵Max3.分配矩阵Allocation4.需求矩阵Need **功能介绍:模拟实现Dijkstra的银行家算法以避免死锁的出现.分两部分组成:第一部分:银行家算法(扫描)1.如果Request2.如果Request3.系统试探分配请求的资源给进程4.系统执行安全性算法第二部分:安全性算法1原创 2004-11-22 23:35:00 · 3791 阅读 · 0 评论 -
BSD套接口篇(下)(翻译)
2、建立对应的客户端 正如你正要看到的,相比服务端,客户端的代码就要简单多了。在这个程序中你必须提供两个命令行参数:服务端所在机器主机名或IP地址,和服务段绑定的端口。当然,服务端还必须在客户端运行以前就已经正常运行:P。/* * Listing 2: * An example client for "Hello, World!" server * Ivan Griffin (ivan.翻译 2004-11-15 18:37:00 · 1106 阅读 · 0 评论 -
距离向量路由算法的c源代码
很久没来了,在学习了模式之后自己试着规划了一个图形处理软件,学过模式和没学过果真不同啊,把握软件大局的能力有了不少提高。这两个星期还抽空把计算机图形学的程序写完了。前两天又入门了一下Direct3D,大二还不知道API为何物的时候学了些DirectDraw,只记得那时候DirectDraw好难哪。现在看Direct3D完全没有那时的感觉了,只是矩阵变换的知识是大一下学期学的,现在都忘了,完全不知道原创 2004-11-22 23:49:00 · 2572 阅读 · 2 评论 -
用BCB拦截Windows消息
C++ Builder不愧为Borland公司的优秀产品,用它来开发Windows程序非常快捷高效,但在编程过程中你也会发现它的一些限制性,让你无法实现 自己的想法。比如你无法在修改表单的系统菜单;比如使用跟踪栏时,你找不到StartTrack和EndTrack事件,而偏偏你的程序需要这两个事件。 Windows API编程中,你就不会有这些麻烦,只需处理一下WM_SYSCOMMAND和WM_H原创 2004-11-13 15:26:00 · 857 阅读 · 0 评论 -
ARP协议揭密
ARP协议揭密 内容: ARP协议概述 ARP使用举例 ARP欺骗 代理ARP的应用 小结 张新瑞 (zhangxinrui2@163.com) 2003 年 5 月1 ARP协议概述IP数据包常通过以太网发送。以太网设备并不识别32位IP地址:它们是以48位以太网地址传输以太网数据包的。因此,IP驱动器必须把IP目的地址转换成以太网网目的地址。在这两种地址之间存在着某种静态的或算法的映原创 2004-11-13 12:17:00 · 737 阅读 · 0 评论 -
取得系统中网卡MAC地址方法二
这种方法使用COM API创建一个GUID(全局唯一标识符)并从那里继承MAC地址。GUID通常用来标识COM组件以及系统中的其他对象。它们是由MAC地址(结合其他东西)计算得来的,表面上MAC地址就包含在其中。我说表面上是因为事实上并没有包含。 我提供这种方法更多的是为了作为反面教材。您也许用这种方法能够得到MAC地址,但有时候您只会得到随机的十六进制数值。 下面的例子十分简单,无需多讲。我们使原创 2004-11-10 01:40:00 · 770 阅读 · 0 评论 -
sniffer技术原理及应用,包括编程方法和工具使用
libpcap的最新版本是0.7.2,下载很多(基于linux/unix)winpcap的最新版本是3.0这里有winpcap的源代码:http://download.pchome.net/php/dl.php?sid=11474著名软件tcpdump及ids snort都是基于libpcap编写的,此外Nmap扫描器也是基于libpcap来捕获目标主机返回的数据包的。winpcap提供给用户两个原创 2004-11-06 12:11:00 · 1970 阅读 · 2 评论 -
WinSock网络通信程序设计入门
对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其所以而不知起所以然。 同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式。 阻塞套接字是指执行此套接字的原创 2004-11-12 13:53:00 · 3277 阅读 · 2 评论 -
利用CAsyncSocket类实现Socket编程
随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要。许多文章都曾经介绍过用VC++进行Socket编程的方法。但由于都是直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。其实,VC++的MFC类库中提供了CAsyncSocket这样一个套接字类,用它来实现Socket编程,是非常方便的。 客户端 创建一个Dialog Based项目:CSockCli原创 2004-11-12 13:50:00 · 2506 阅读 · 0 评论 -
九宫图算法
这题奇数是有数学方法的,可以构造出解。描述起来比较麻烦。出一解的构造法:首先在整个矩阵的最下面一行的中央置1,然后向右下方向顺序填上2,3,4,5,6,7,……注意碰到底的时候就将数翻到上面去,碰到右边的时候就翻到左面去比如5*5的幻方,如果1填在(5,3)处,2就应该填在(1,4)处,4就应该填在(3,1)处……另外,当原数的下方已经有数时,要将要填入的数填到原数正上方仍举5*5幻方的例子,当5原创 2004-11-12 01:05:00 · 4540 阅读 · 10 评论 -
一个字符串倒序排列
方法一:#include char * fun(char *s){ int len=0,i; char temp; for(i=0;*(s+i)!=/0;i++) ; len=i; for(i=0;i { temp=s[i]; s[i]=s[len-1-i]; s[len-1-i]=temp; } return s;}int main(){ c原创 2004-11-10 15:44:00 · 1061 阅读 · 1 评论 -
在C中如何把print出的文字,紀錄在一個文件中
方法一:#includemain(){ FILE *fp; int i=0; char *s="Am I right?"; fp=fopen("c://text.txt","wr"); while(*s) { printf("%c",*s); fseek(fp,i++,SEEK_SET); fprintf(fp,"%c",*s++); } fclose(fp); ge原创 2004-11-10 15:36:00 · 915 阅读 · 0 评论 -
取得系统中网卡MAC地址方法一
第一种方法使用Microsoft的Netbios API。 这是一套通过Winsock提供底层网络支持的命令。使用Netbios的最大缺点是您必须在系统中安装了Netbios服务(如果您在windows网络中启用了文件共享的话,这就不是问题了)。除此此外,这种方法又快又准确。 Netbios API只包括了一个函数,就叫做Netbios。这个函数使用网络控制块(network control原创 2004-11-10 01:38:00 · 828 阅读 · 0 评论 -
捕获数据包(二)
B. 打开相应网卡并设置为混杂模式: 在此之前肯定要有一段让用户选择网卡、并获得用户选择的网卡的名字的代码,既然上面已经可以获得所有网卡的名字了,这段代码就暂且略过了。 我们主要是要用到 pcap_open_live 函数,不过这个函数winpcap的开发小组已经建议用pcap_open 函数来代替,不过因为我的代码里面用的就是pcap_open_live,所以也不便于修改了,不过原创 2004-11-06 22:05:00 · 2981 阅读 · 7 评论 -
C语言中的格式化写入文件函数及使用实例
#include main(){ FILE *Ptr; char Line[256]; /* ... Open a file for output. */ Ptr = fopen("/tmp/OutputFile", "w"); while(gets(Line)) /* Get data from stdin */ { fprintf(Ptr, "%原创 2004-11-05 12:23:00 · 1147 阅读 · 0 评论 -
C语言中的打开文件函数及使用实例
#include main(){ int c; /* Character read from the file. */ FILE *ptr; /* Pointer to the file. FILE is a structure defined in */ /* Open the file - no error checking done */ ptr原创 2004-11-05 12:14:00 · 1480 阅读 · 0 评论 -
C语言中字符串拷贝函数的实例
#include /* strcpy */void SafeCopy(char *Dest, int DestSize, char *Source);main(){ char Text1[20]="Tracy Sorrell"; /* string buffer */ char Text2[10]="Martin"; /* string buffer */原创 2004-11-05 12:08:00 · 1045 阅读 · 0 评论 -
捕获数据包(一)
一.捕获数据包的实现原理:--------------------------------------------------------------------在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取原创 2004-11-06 12:55:00 · 2487 阅读 · 5 评论