摘要:
利用关键代码段实现多线程同步关键代码段又叫临界区,是指一个小代码段,在代码能够执行前,它必须对具有对资源的独中权。如一次只能一个人打电话的公用电话厅,开始时要建个电话厅(初始化临界区:InitializeCriticalSection),一个人打电话(EnterCiticalSection),打完电话离开,便于别人打(LeaveCriticalSection),电话厅不用时,拆掉,释放资源(DeleteCriticalSection);如下程序实现多线程同步:#include <windows.h>#include <iostream>using namespace s 阅读全文
摘要:
C#访问同类实例的私有成员代码大家都知道,一个类的私有成员只能在他的内部访问!但是不知道大家注意到没有,实际上在C#中一个类的实例是可以访问同一个类的另外一个实例的私有成员的。请看这段简单的代码public class MyClass { private int i = 0; public void Function() { MyClass a = new MyClass(); Console.WriteLine( a.i); //这里成功访问了另外的一个实例a的私有实例字段 } }大家也可以自己写一段类似的代码来测试一下,的确是可以访问另外一个实例的私有成员!为什么呢?因为C#就是一开始就是 阅读全文
摘要:
问题的起源: 我在看新版的《C++编程思想》的时候,看到拷贝构造函数章节处大致有这么一,非常不解: Class A { int n; //私有的n public: A(const A& a): n(a.n){} //为什么可以调用a.n,n明明是私有的 } 另外在重载=操作符的时候也有这样的问题。 后来得到的答案是:private是限定异类之间的访问,而不是限定同类不同对象的访问 只有smalltalk是连同类不同对象的访问都限制的 这样就清楚明白的回答了为什么拷贝构造函数可以根据一个对象完整的复制出另一个对象。 但是这样似乎有点不对劲,这样也就是说C++中的一个类是他自己的友员,那样 阅读全文
摘要:
1.流方式下载 protected void Button4_Click(object sender, EventArgs e) { string fileName = "aaa.txt";//客户端保存的文件名 string filePath = Server.MapPath("DownLoad/aaa.txt");//路径 //以字符流的形式下载文件 FileStream fs = new FileStream(filePath, FileMode.Open); byte[] bytes = new byte[(int)fs.Length]; fs. 阅读全文
摘要:
奥古斯都·德·摩根首先发现了在命题逻辑中存在着下面这些关系: 非(P 且 Q)=(非 P)或(非 Q) 非(P 或 Q)=(非 P)且(非 Q)德·摩根的发现影响了乔治·布尔从事的逻辑问题代数解法的研究,这巩固了德·摩根作为该规律的发现者的地位,尽管亚里士多德也曾注意到类似现象、且这也为古希腊与中世纪的逻辑学家熟知(引自Bocheński《形式逻辑历史》 )。形式表示形式逻辑中此定律表达形式:在集合论中:[编辑] 详细解释在经典命题逻辑的外延中,此二元性依然有效(即对于任意的逻辑运算符,我们都能找他它的对偶),由于存在于调节否定关系的恒等式中, 阅读全文
摘要:
主要思想:将各硬件模块作为观察者加入观察者队列,当机器状态改变时Notify所有观察者,各观察者根据消息类型做不同反应或不作反应。下面贴出代码简单实现,希望引起圈内朋友的关注,起到抛砖引玉的效果。下面两个类是两个基类.class CObserver {public: CObserver(); virtual ~CObserver();public: virtual void Update(HouEvent nEvent)=0;};class CSubject{public: CSubject(); virtual ~CSubject();public: void Attach(CObserve 阅读全文
摘要:
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于 编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时, 编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不 明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非 常困难。 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为: unresolved external symbol “symbol”(不确定的外部“符号”)。 如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或 标签,将产生此错误消息。一般来说,发生错误的原因有两个:. 阅读全文
摘要:
来自无情的空间: http://hi.baidu.com/xinghuo(注:有网友发现错误并指出,所有稍微有些修正--感谢提出问题的网友)for对很多批处理新手来说可能是最不好理解的,而微软的帮助又极为苦涩难懂,所以我想把我所了解的for尽可能以最简单的方式写出来。当然,因为是自己的理解,难免会有错,还请各位指出。好了,开始。1.没有任何参数的for 格式为:for %%i in (set) do command %%i 为变量 set为一个文件或者一组文件,其实就是一个集合。可用通配符,比如*.txt。 command 是要执行的命令。 看个例子: 有个文件夹,有如下文件: a.txt b 阅读全文
摘要:
com学习笔记挺多,挺好http://www.cnblogs.com/ClingingboyCOM组件设计与应用(九) IDispatch 接口 for vc6.0http://www.vckbase.com/document/viewdoc/?id=1506VC知识库http://www.vckbase.com/非常酷的js脚本资料http://www.51windows.net/myjs/?u=/myjs/JsList.aspSVG开发实践http://book.csdn.net/bookfiles/605/index.html 阅读全文
摘要:
QueryInterface 接上篇一.COM接口的开始IUnknowncom起于接口,又归于接口.com之所以是com,是因为其继承了一个名为IUnknown接口.IUnknown接口是一个非常有趣的名字.我们第一次看到这个接口,都会非常好奇,名字的由来开发内部肯定是有故事的,或者他们想不出啥好名字也是有可能的.下面我们来看一下IUnknown接口定义了哪些成员,这篇只讲QueryInterfaceinterface IUnknown{ virtual HRESULT __stdcall QueryInterface(const IID& iid, void** ppv) =0; v 阅读全文