
基础知识
文章平均质量分 70
johnnyzjy
C ,C#;
MFC,COM,STL,OPENGL,WINFORM,WPF,WCF,ARX,ACIS,HOOPS;
Design,Coding,UnitTest;
UML,XML,Perforce,ClearQuest;
展开
-
字符,字节和编码
字符,字节和编码摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问题”。掌握编码问题的关键是正确地理解相关概念,编码所涉及的技术其实是很简单的。因此,阅读本文时需要慢读多想,多思考。引言“字符与编码”转载 2007-05-09 10:08:00 · 615 阅读 · 0 评论 -
UML中各种关系说明以及举例
UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。依赖 (Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关 系,原创 2007-12-26 12:31:00 · 9493 阅读 · 2 评论 -
STA区别MTA
STA: Single-Thread Apartment, 中文叫单线程套间。就是在COM库初始化的时候创建一个内存结构,然后让它和调用CoInitialize的线程相关联。这个内存结构针对每个线程都会有一个。支持STA的COM对象只能在创建它的线程里被使用,其它线程如果再创建它就会失败。 MTA: Mutil-Thread Apartment,中文叫多线程套间。COM库在进程中创建一个内存结构,转载 2007-12-10 11:18:00 · 5003 阅读 · 0 评论 -
COM和套间(Apartments)
COM技术过时了吗?这句话也对也不对。从技术上讲,确实COM的使用率在下降,但是从思想上来说,COM的面向接口的思想正在被Java和.NET发扬光大。那我们还需要和COM打交道吗?这取决于你工作的领域。虽然现在微软的平台在慢慢向着.NET迁移,不过,在维护原有非托管代码,编写和Windows系统组件打交道的程序,以及使用CLR调用非托管代码的时候,COM或多或少都是不可避免的。与COM打交道就没法转载 2007-12-10 11:27:00 · 1150 阅读 · 0 评论 -
ADO连接数据库字符串大全
ADO连接数据库字符串大全 This page contains sample ADO connection strings for ODBC DSN / DSN-Less, OLE DB Providers, Remote Data Services (RDS), MS Remote, MS DataShape. Also included are ADO.NET connection stri转载 2008-01-24 12:42:00 · 857 阅读 · 0 评论 -
C++数据类型转换小结
刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。 我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]="女侠程佩君"; char temp[200]; char *buf; CString str; _va原创 2007-09-24 10:45:00 · 1170 阅读 · 0 评论 -
__stdcall,__fastcall,__cdecl等函数说明符详解
__stdcall,__fastcall,__cdecl用于确定以下三方面函数调用信息:1。将函数参数推送到堆栈上的顺序。 2。是由调用方函数还是由被调用函数在调用结束时从堆栈中移除参数。 3。编译器用来标识各个函数的名称修饰约定。 __cdecl 细节对于 C,__cdecl 命名约定使用以下划线 ( _ ) 开头的函数名;不执行任何大小写转换。除非声明为 extern "C",否原创 2007-09-24 10:47:00 · 1216 阅读 · 0 评论 -
va_start,va_arg,va_end,va_list应用举例--实现可变参数的函数
/* VA.C: The program below illustrates passing a variable * number of arguments using the following macros: * va_start va_arg va_end * va_list va_dcl (UNI原创 2007-09-24 10:43:00 · 1383 阅读 · 0 评论 -
高亮显示VC++开发环境中的自定义关键字
在VC++.net安装目录下路径为C:/Program Files/Microsoft Visual Studio .NET/Common7/IDE定义一个USERTYPE.DAT文件该文件的内容为要高亮显示的类名等或者是其他一些关键字例如:在usertype.dat文件中ACRX_EVENT_OBJACRX_KERNEL_SERVICESACRX_MAX_CMDNAME_LENACRX_NO原创 2007-09-24 10:41:00 · 1564 阅读 · 1 评论 -
面向对象的设计原则与经验
面向对象设计经验: (1)所有数据都应该隐藏在所在的类的内部。p13 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。p15 (3)尽量减少类的协议中的消息。p16 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。 p16 (5)不要把转载 2007-09-13 17:21:00 · 1024 阅读 · 0 评论 -
动态语言和静态语言、强类型定义语言和弱类型定义语言、解释型语言、动态语言、脚本语言的概念区分
1、动态语言和静态语言通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语转载 2007-09-04 12:55:00 · 2319 阅读 · 0 评论 -
Debug和Release状态下的程序调试
在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当头一棒啊,可是疼归疼,问题总要解决,下面将讲述一下我的几点经验,看看是不是其中之一: 1. 变量。大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc(注1),而release的赋值转载 2007-09-04 10:46:00 · 2205 阅读 · 0 评论 -
一个简单的C++程序反汇编解析
一个简单的C++程序反汇编解析本系列主要从汇编角度研究c++语言机制和汇编的对应关系。第一篇自然应该从最简单的开始。c++的源代码如下: class my_class { public : my_class()转载 2007-05-24 18:35:00 · 2334 阅读 · 0 评论 -
正则表达式元字符列表
正则表达式元字符列表 下表是元字符及其在正则表达式上下文中的行为的一个完整列表:字符 描述将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。例如,n 匹配字符 "n"。/n 匹配一个换行符。序列 / 匹配 "" 而 "/(" 则匹配 "("。^匹配输入字符串的转载 2009-06-19 19:29:00 · 964 阅读 · 0 评论