VC中ftp协议实现多线程断点续传(转)
VC中ftp协议实现多线程断点续传(转)[@more@]ftp下载的好处我在这里就不多说了,许多工程会把ftp下载作为一个重要的功能来实现。微软提供的WinInet类可以利用下面这些函数: InternetOpen; InternetConnect; GetCurrentDirectory; SetCurrentDirectory; FtpGetFile;很容易实现ftp的下载,网上关于这方面的文章也很多。但是要实现ftp的多线程下载,利用这些函数就显得有些牵强了。用socket根据ftp协议来开发将会变的十分灵活。下面我就逐步的讲解整个开发的过程:开发环境 BCB(组件模式),VC 环境下请自行稍作改动。看
对C# 2.0中匿名方法的种种怀疑分析(转)
对C# 2.0中匿名方法的种种怀疑分析(转)[@more@]一、 简介所有的方法都使用一个来自于相同集合的元素的子集。在C# 2.0中,可选元素集将会继续增长。从历史上看-除了C++内联方法之外-方法都要求有一个名字、一个返回类型和一个方法体。而且可选择地,方法可以使用存取修饰符和一个参数列表。在C# 2.0中,方法名已经从必需的变成了可选的。C# 2.0(一般就代表.net)引入了匿名方法。一个匿名方法可以被用在任何使用代理且该代理被定义为内联的情况下,它不需要方法名,而具有可选的参数和一个方法体。为了使用匿名方法,你需要了解什么是代理。
焦点关注:Visual C# 3.0 新特性概览(转)
焦点关注:Visual C# 3.0 新特性概览(转)[@more@]在发布Visual Studio 2005和C#2.0之后,微软公司又马不停蹄的展示了人们所期望的C#的下一代版本:C# 3.0。尽管C# 3.0并没有标准化,微软还是在PDC(专业程序员会议)发布了一个预览版本,因此心急的程序员可以看到一些所期望的特性,这也是本文所讨论的主要内容: ·隐式类型本地变量 ·匿名变量 ·扩展方法 ·对象和Collection初始化符 ·Lambda表达式 ·查询表达式 ·表达式树 隐式类型本地变量C# 3.0引进了一个新的关键字叫做"Var"。Var允许你声明一个新变量,
人月团圆趣味程序:用C实现的爱情宣言(转)
人月团圆趣味程序:用C实现的爱情宣言(转)[@more@]祝有情人团圆#include "stdio.h"#include "graphics.h"#include "time.h"#include "math.h"#define N 2#define TIME 0.8/*微粒的的运动时间,TIME/步,每一步长为25个单位*/void *buf[N];struct{int x,y;} lizi[]={{0,0},{75,75}};void alter_place_lizi(int *x,int *y,int key)/*根据随机方向改变粒子的方位*/{switch(key){case 0:case 1:case 2:*x-=25;break;case 4:case 5:case 6:*x+=25;break;}switch(key){ case 0:case 7:case 6:*y-=25;break;case 2:case 3:case 4:*y+=25;break;}if
浅议C语言中灵魂数组和指针的互操作(转)
浅议C语言中灵魂数组和指针的互操作(转)[@more@]曾听好多朋友说,C是一种怀旧的语言,因为它的历史很久远,然而自从各种面向对象的编程语言的相续出现让它的影响力日减。当然了,这是无可非议的,但是C的高效性是其他语言无妨比拟的,所以我们有必要把握其中的精华与奥妙,也就有必要知道其中的基本的数据结构的比如数组,稍微有点深度的堆栈、列表、结构体等的操作和实现。指针也是C语言中的一个很优秀灵活的结构,对它的了解也是必不可少的。我们一般都认为数组是一维的数据存储结构,因为二位数组或者说矩阵都可以看作是多个一维数组的
在C#中利用DirectX实现声音播放(转)
在C#中利用DirectX实现声音播放(转)[@more@]这里是展示最简单的DirectX播放声音的例子,我尽量省略了无关的代码。最后的代码只有19行,够简单了吧?准备工作:1.安装了DirectX SDK(有9个DLL文件)。这里我们只用到MicroSoft.DirectX.dll 和 Microsoft.Directx.DirectSound.dll2.一个WAV文件。(这样的文件比较好找,在QQ的目录里就不少啊。这里就不多说了。)名字叫SND.WAV,放在最后目标程序的同个目录下面开始写程序啦。随便用个UltraEdit就好了。1.引入DirectX 的DLL文件的名字空间:using Microsoft.DirectX;using Microsoft.DirectX
编程秘籍:使C语言高效的四大绝招(转)
编程秘籍:使C语言高效的四大绝招(转)[@more@]编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就是针对编程工作中的一些体会和经验做相关的阐述。第一招:以空间换时间计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值:方法A:通常的办法#define LEN 32char string1 [LEN];memset (string1,0,LEN);strcpy (string1,"This is a example!!");方法B:const char string2[LEN] ="This is a example!";char * cp;cp
C#开发的两个基本编程原则的深入讨论(转)
C#开发的两个基本编程原则的深入讨论(转)[@more@]使用属性,避免将数据成员直接暴露给外界学习研究.NET的早期,经常碰到一些学习C#/.NET的朋友问,要属性这种华而不实的东西做什么?后来做项目时也时常接到team里的人的抱怨反馈,为什么不直接放一个public字段?如:class Card{ public string Name;}而要做一个private字段+public属性class Card{ private string name; public string Name { get { return this.name;} set { this.name=value;} }}我记得在早期的一个项目里,team中的一个朋友甚至厌烦了写private字段+ publi
C++之父Bjarne谈C++在2005年(转)
C++之父Bjarne谈C++在2005年(转)[@more@]现在我们仍然很难估计C++程序员的数量,但在2003年,IDC报告说有超过300万的全职C++程序员,这个数据还是比较可信的。虽然我不能够精确地计算,但是我所拥有的所有指标都显示,C++在经过前十年(1985-1994)的爆炸性增长之后,后十年(1995-2004)其使用人数一直在稳定地增长。我还没有经历过其增长停止的时期。我猜想,虽然面对竞争产品的有力宣传和肆无忌惮的促销活动,它仍然稳定增长的主要原因在于:在这个时期中C++语言保持着稳定性(stability)。在这些年头中,这种语言的实现有了很大的改
C#中实现DataGrid双向排序(转)
C#中实现DataGrid双向排序(转)[@more@]在.net 中 DataGrid 虽然有排序的功能,但并不支持双向的排序。用到了,看了些相关的帖子,自己尝试了一种方法,竟然也行得通,主要是用 DataGrid.Attributes 存了一个参数,同时在onSortCommand中修改了DataGridColumn的SortExpression. 代码如下:private void BindData() { DataTable dt = .......; if(dt != null) { DataView dv = dt.DefaultView; if(DataGrid1.Attributes["SortBy"] != null) { dv.Sort = DataGrid1.Attributes["SortBy"]; } DataGrid1.DataS
C#中使用反射的使用实现和性能分析(转)
C#中使用反射的使用实现和性能分析(转)[@more@]最近在研究一个可配置系统的框架,在代码中大量使用了反射的方法,虽然借鉴到其他的语言,如Java中反射性能都比较差,但是想到C#既然是一种强类型的语言,对于AppDomain中的类的调用应该性能不会差很多。今天在mvp站点上看到有人说反射的性能很差,要避免使用,就写了一个简单的例子测试了一下测试类如下:namespace ReflectionTest.Test{public class CTester{public CTester(){a = 10;}public void test1() {a = (a - 0.0001) * 1.0001;}private double a;public double geta() { return a
简单方法在C#中取得汉字的拼音的首字母(转)
简单方法在C#中取得汉字的拼音的首字母(转)[@more@]今天在yyf9989 的 Blog 上看到一篇《C#计算汉语拼音码》,看了里面的代码,觉得是比较繁琐。它主要是检索输入的汉字在数组中的位置,然后返回第一个字母。于是就想起来了,可以利用汉字在计算机里面的编码来的到汉字的首拼音,查找了一些资料,通过以下的方法成功的得到了解决。就放在这里,请朋友们参考。static public string GetChineseSpell(string strText){int len = strText.Length;string myStr = "";for(int i=0;i {myStr += getSpell(strText.Substring(i,1));}return myStr;}
.NET开发之中的17种正则表达式小结(转)
.NET开发之中的17种正则表达式小结(转)[@more@]"^d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?d+$" //整数 "^d+(.d+)?$" //非负浮点数(正浮点数 + 0) "^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数 "^((-d+(.d+)?)|(0+(.0+)?))$" //非正浮点数(负浮点数 + 0) "^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$"
利用C语言小程序来解决大问题(转)
利用C语言小程序来解决大问题(转)[@more@]我们知道C语言的功能非常强大,很适合编写系统软件。利用它我们可以很容易地解决经常遇到的一些棘手的问题,如拷贝隐含或系统属性的文件(特别是光盘中的隐含文件)、在任意DOS版本或在windows中更改子目录的名称、在任意DOS 版本中使用带空格的目录名等等。这些问题仅靠操作系统或常用的工具软件往往很难凑效。我们可以利用C语言的强大功能来编写一些小程序,能够很顺利地解决这些问题。一、拷贝隐含或系统属性的文件使用操作系统提供的拷贝命令不能拷贝隐含或系统属性的文件,因为在拷贝过程中
unix下编写socket程序的一般步骤(转)
unix下编写socket程序的一般步骤(转)[@more@]在unix下写socket程序可能是最方便,你只要掌握其一般步骤,就可以松的写出面向传输层的应用。1、理解几个常用的socket函数#include#includeint socket(int domain,int type,int portocol);domain指所使用的协议族(family)可以为AF_UNIX和AF_INET,一般只用AF_INET(指Internet)type指所用的传输类型,可以为SOCK_STERAM(面向连接的TCP),和SOCK_DGRAM(面向无连接的udp)int bind(int s,const struct sockaddr *address,size_t address_len);s为socket返回的文件描述符address为协议族名称和其他信
共享软件中注册部分的简单实现(转)
共享软件中注册部分的简单实现(转)[@more@]目前,很多共享软件中使用注册码来实现对软件的保护。所谓注册码,就是一组与用户的某些特定信息(如用户名称、计算机硬件等等)相关的字符串。由于注册码传输起来比较简单,同时容易验证(相对于磁盘、光盘指纹等),因此现在注册码的应用越来越广泛,甚至一些商业软件,如Windows XP也使用了类似的机制(Microsoft称为Windows ProductActivation)。谈起注册码,就不能不提注册器。注册器是用来产生注册码的程序,其计算逻辑通常与受保护的应用程序一致。通过与受保护应用程序相同,或预先约定
C++编程批评系列 继承的本质(转)
C++编程批评系列 继承的本质(转)[@more@]Eiffel和C++都提供了多继承的机制。但Java却没有,因为它认为多继承会导致许多问题的出现。不过Java提供了接口(interface)作为一种替换机制,它类似于Objective C中的协议(protocol)。Sun宣称接口可以提供多继承所能提供的所有特性。Sun所宣称的“多继承会带来许多的问题”这个观点是对的,尤其是在C++中用以实现多继承的方法更能说明这一点。那些看起来似乎使用多继承会比单继承更简单的理由,现在都以被证明是毫无意义。例如,如何制订对于从两个类之上继承得到的具有相同名字的数据项之间的策略
在Visual C++中利用UDL文件建ADO连接(转)
在Visual C++中利用UDL文件建ADO连接(转)[@more@]使用通用数据连接文件(*.UDL,以下简称文件)来创建ADO连接,可以和ODBC一样可视化地定义要连接的数据源,从而实现数据访问的透明性。1.使用UDL文件来创建ADO连接创建ADO的连接,首先要设置ADO连接对象的ConnectionString属性,该属性提供所要连接的数据库类型、数据所处服务器、要访问的数据库和数据库访问的安全认证信息。比较专业的方法是在ConnectionString中直接提供以上信息,下面是访问不同类型数据源设置 ConnectionString的标准:访问ODBC数据"Provider=MSDASQL;DSN=dsnName;UID
C++中的静态联编和动态联编介绍(转)
C++中的静态联编和动态联编介绍(转)[@more@]联编是指一个计算机程序自身彼此关联的过程。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。静态联编静态联编是指联编工作出现在编译连接阶段,这种联编又称早期联编,因为这种联编过程是在程序开始运行之前完成的。在编译时所进行的这种联编又称静态束定。在编译时就解决了程序中的操作调用与执行该操作代码间的关系,确定这种关系又称为束定,在编译时束定又称静态束定。下面举一个静态联编的例子。#includeclass Point{public:Point(double i, double j) { x=i;
Matlab与C语言程序的应用编程接口(转)
Matlab与C语言程序的应用编程接口(转)[@more@]MATLAB作为世界顶尖的数学应用软件,以其强大的工程计算、算法研究、工程绘图、应用程序开发、数据分析和动态仿真等功能,在航空航天、机械制造和工程建筑等领域发挥着越来越重要的作用。而C语言功能丰富,使用灵活方便,目标程序效率高。既有高级语言的优点,又有低级语言的特点。因此,C语言是目前应用最广的编程语言。虽然MATLAB是一个完整的、功能齐全的编程环境,但在某些情况下,与外部环境的数据和程序的交互是非常必须而且有益的。众所周知,MATLAB是用M语言编程,不能在M文件中直接调