发信人: wokao() 
整理人: girlrong(1999-11-09 10:32:16), 站内信件
 | 
 
 
请问各位大侠!当有文件被操作(del,rename,move..)
 是否window会发消息?
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.110.198] 发信人: tengel (Dragon), 信区: CLanguage 标  题: Re: 请问大侠!当有文件被操作(del,move..)是否win会发消息? 发信站: 网易虚拟社区 (Wed Sep 15 09:13:07 1999), 站内信件
  【 在 wokao (wokao) 的大作中提到: 】
 : 请问各位大侠!当有文件被操作(del,rename,move..)
 : 是否window会发消息?
 
 应该不会,但可以使用VXD监测,呵呵
  --                                            _
    O           @___       G               : \  
   /|__       /|/         /\|\             :  \
  /|/_       / /\         \ X_             :   \
   /  |     __/  \          | \      0     :    \
  /    0        0|          /              :     \
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.33.108] 发信人: liouyong (柳永), 信区: CLanguage 标  题: Re: 请问大侠!当有文件被操作(del,move..)是否win会发消息? 发信站: 网易虚拟社区 (Wed Sep 15 13:46:47 1999), 站内信件
  【 在 tengel (Dragon) 的大作中提到: 】
 : 【 在 wokao (wokao) 的大作中提到: 】
 : : 请问各位大侠!当有文件被操作(del,rename,move..)
 : : 是否window会发消息?
 : 
 :    .......
 
 请问VXD如何监测?告知方法,谢谢!
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.98.120.126] 发信人: jalinsoo (jalinsoo), 信区: CLanguage 标  题: Re: 请问大侠!当有文件被操作(del,move..)是否win会发消息? 发信站: 网易虚拟社区 (Wed Sep 15 15:41:47 1999), 站内信件
  【 在 wokao (wokao) 的大作中提到: 】
 : 请问各位大侠!当有文件被操作(del,rename,move..)
 : 是否window会发消息?
 
 在这种情况下,WINDOW是不会发通知消息的.
 你可以将整个文件系统映射到一个文件中,然后定时的重映射,
 再比较两次映射的文件是否一致就可以知道文件系统是否被更改了
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.183.48] 发信人: wokao (wokao), 信区: CLanguage 标  题: Re: 请问大侠!当有文件被操作(del,move..)是否win会发消息? 发信站: 网易虚拟社区 (Thu Sep 16 11:01:29 1999), 站内信件
  【 在 jalinsoo (jalinsoo) 的大作中提到: 】
 : 【 在 wokao (wokao) 的大作中提到: 】
 : : 请问各位大侠!当有文件被操作(del,rename,move..)
 : : 是否window会发消息?
 : 
 :    .......
 VXD我不懂,但用这种文件映射的方法也可以,只是这种方法比较机械,也不
 能用于全局的DISK,某一个文件目录还是有用的。
 thank you have give me a very simple and useful solution.
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.178.235] 发信人: jiangsheng (蒋晟), 信区: CLanguage 标  题: Re: 请问大侠!当有文件被操作(del,move..)是否win会发消息? 发信站: 网易虚拟社区 (Fri Sep 24 00:03:03 1999), 站内信件
  【 在 wokao (wokao) 的大作中提到: 】
 : 请问各位大侠!当有文件被操作(del,rename,move..)
 : 是否window会发消息?
 函数WINSHELLAPI void WINAPI SHChangeNotify(
     LONG wEventId, 
     UINT uFlags, 
     LPCVOID dwItem1, 
     LPCVOID dwItem2
 );		
 提请外壳(通常是explorer.exe)注意有文件操作。参见
 MSDN/SDK/Shell And Common Controls/
 Windows Shell API/Shell Reference/
 Functions/SHChangeNotify
 可以用一个线程监视文件,详细资料参见
 http://www.relisoft.com/win32/watcher.html
  
 
 
 -- ※ 修改:.jiangsheng 于 Sep 24 01:55:09 修改本文.[FROM: 203.93.7.52] ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 203.93.7.52] 发信人: jiangsheng (蒋晟), 信区: CLanguage 标  题: Re: 请问大侠!当有文件被操作(del,move..)是否win会发消息? 发信站: 网易虚拟社区 (Fri Oct  1 15:53:09 1999), 站内信件
  【 在 wokao (wokao) 的大作中提到: 】
 : 请问各位大侠!当有文件被操作(del,rename,move..)
 : 是否window会发消息?
 HANDLE FindFirstChangeNotification(
   LPCTSTR lpPathName,    // pointer to name of directory to watch
   BOOL bWatchSubtree,    // flag for monitoring directory or 
                          // directory tree
   DWORD dwNotifyFilter   // filter conditions to watch for
 );
  
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 203.93.7.52] 发信人: crazyjava (骄傲的中国人), 信区: C 标  题: 讨论一个小问题 -- private 发信站: 网易虚拟社区 (Sun Jul 18 12:35:02 1999), 站内信件
  很久没有用C++来写程序了,所以现在都是凭以前的经验
 来解决一些朋友提出的问题。发现有些基本概念现在好象
 糊涂了 :(
 
 有以下小程序:(希望大家看完后不要急于把它compile,
 先自己分析一下)
 
 #include <stdio.h>
 
 class A
 {
   private:
       int m_iData;
   public:
       A() { m_iData = 0; }
       A( int i ) { m_iData = i; }
 
       void Show() 
         { ::printf( "%d\n", m_iData ); }
       void Show( A a ) 
         { ::printf( "%d\n", a.m_iData ); }
 };
 
 void main()
 {
       A a1( 10 );
       A a2( 20 );
       a1.Show();
       a1.Show( a2 );
 }
 
 我看完后,就脱口而出说,这程序错了!
 因为 m_iData 是 private. 而  
 void Show( A a ) 
 { ::printf( "<%d>\n", a.m_iData ); }
 中竟然可以直接用 a.m_iData, 也就是说 
 a1.Show( a2 ) 中 a1 可以直接使用 a2 的 
 private data,这当然不行了! 结果。。。 :P
 
 大家又认为如何??
 
 
 -- 孤身走我路...
 其实,路,两个人一起走比一个人要好。
 email: [email protected]
  ※ 修改:.crazyjava 于 Jul 18 12:46:20 修改本文.[FROM: 139.87.93.202] ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 139.87.93.202] 发信人: Ericuo (帅呆了), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易 BBS (Sun Jul 18 13:34:40 1999), 转信
 
  肯定是可以的, 在本类中用到本类为类型的对象时, 是可以直接访问私有成员的。
  【 在 crazyjava (骄傲的中国人) 的大作中提到: 】 : 很久没有用C++来写程序了,所以现在都是凭以前的经验 : 来解决一些朋友提出的问题。发现有些基本概念现在好象 : 糊涂了 :( :  : 有以下小程序:(希望大家看完后不要急于把它compile, : 先自己分析一下) :  : #include <stdio.h> :  : class A : { :   private: :       int m_iData; :   public: :       A() { m_iData = 0; } :       A( int i ) { m_iData = i; } :  :       void Show()  :         { ::printf( "%d\n", m_iData ); } :       void Show( A a )  :         { ::printf( "%d\n", a.m_iData ); } : }; :  : void main() : { :       A a1( 10 ); :       A a2( 20 ); :       a1.Show(); :       a1.Show( a2 ); : } :  : 我看完后,就脱口而出说,这程序错了! : 因为 m_iData 是 private. 而   : void Show( A a )  : { ::printf( "<%d>\n", a.m_iData ); } : 中竟然可以直接用 a.m_iData, 也就是说  : a1.Show( a2 ) 中 a1 可以直接使用 a2 的  : private data,这当然不行了! 结果。。。 :P :  : 大家又认为如何?? :  : 
 
  -- ※ 来源:.网易 BBS bbs.netease.com.[FROM: 210.75.42.134] 发信人: crazyjava (骄傲的中国人), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易虚拟社区 (Sun Jul 18 16:15:36 1999), 站内信件
  【 在 Ericuo (帅呆了) 的大作中提到: 】
 : 肯定是可以的,
 : 在本类中用到本类为类型的对象时,
 : 是可以直接访问私有成员的。
 : 【 在 crazyjava (骄傲的中国人) 的大作中提到: 】
 :    .......
 
 请教一下: 
 
 a1.Show( a2 ) 中 a1 可以直接使用 a2 的 
 private data 你又如何理解呢?
  -- 孤身走我路...
 其实,路,两个人一起走比一个人要好。
 email: [email protected]
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 139.87.93.243] 发信人: Ericuo (帅呆了), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易 BBS (Sun Jul 18 17:59:15 1999), 转信
 
  具体的解释我忘记了, 不过因为对a2的private data的使用是在show()这个函数中, 而这个函数又在类A中,所以一定可以这样用的。 另:当对象做参数时,会调用拷贝构造函数的
  【 在 crazyjava (骄傲的中国人) 的大作中提到: 】 : 【 在 Ericuo (帅呆了) 的大作中提到: 】 : : 肯定是可以的, : : 在本类中用到本类为类型的对象时, : : 是可以直接访问私有成员的。 : : 【 在 crazyjava (骄傲的中国人) 的大作中提到: 】 : :    ....... :  : 请教一下:  :  : a1.Show( a2 ) 中 a1 可以直接使用 a2 的  : private data 你又如何理解呢?
 
  -- ※ 来源:.网易 BBS bbs.netease.com.[FROM: 210.75.42.133] 发信人: crazyjava (骄傲的中国人), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易虚拟社区 (Mon Jul 19 05:23:16 1999), 站内信件
  【 在 Ericuo (帅呆了) 的大作中提到: 】
 : 具体的解释我忘记了,
 : 不过因为对a2的private data的使用是在show()这个函数中,
 : 而这个函数又在类A中,所以一定可以这样用的。
 : 另:当对象做参数时,会调用拷贝构造函数的
 :    .......
 
 我奇怪的是,在OOP的思想中,每个object的private data
 是不应该给其它object 直接使用的,就好象有两个人a1,a2,
 他们都有自己的私隐,a1不允许直接知道和使用a2的私隐。
 而在C++的语法中却违反了这一OOP的思想。
  -- 孤身走我路...
 其实,路,两个人一起走比一个人要好。
 email: [email protected]
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 139.87.93.207] 发信人: nxin (角虎), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易虚拟社区 (Mon Jul 19 09:30:19 1999), 站内信件
  【 在 crazyjava (骄傲的中国人) 的大作中提到: 】
 : 【 在 Ericuo (帅呆了) 的大作中提到: 】
 : : 具体的解释我忘记了,
 : : 不过因为对a2的private data的使用是在show()这个函数中,
 : : 而这个函数又在类A中,所以一定可以这样用的。
 :    .......
 
 C++中的private保护是基于类的,类A的成员函数可以访问所有类A对象
 的private成员变量,编译时没有办法知道所访问的对象是否是当前对象。
 你说的OOP概念不错,但C++不是纯面向对象语言,不少地方打破了界限,
 这是继承C的结果。
 纯面向对象语言例如smalltalk中不允许直接访问成员变量,象
 a.m_iData这种写法语法上就是不支持的,要想访问需要写个函数
 int A::getdata(){return m_iData;}
 用a.getdata()的方式访问,这样就保证了只有成员函数才能访问自己
 的对象。但是不支持a.m_iData的写法在C++中是不可想象的。
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 203.196.1.253] 发信人: Ericuo (帅呆了), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易 BBS (Mon Jul 19 10:06:01 1999), 转信
 
  在类中允许使用也是为了方便起见,不然的话会很麻烦, 这也是灵活性和数据的隐藏不能共存吧
  【 在 crazyjava (骄傲的中国人) 的大作中提到: 】 : 【 在 Ericuo (帅呆了) 的大作中提到: 】 : : 具体的解释我忘记了, : : 不过因为对a2的private data的使用是在show()这个函数中, : : 而这个函数又在类A中,所以一定可以这样用的。 : : 另:当对象做参数时,会调用拷贝构造函数的 : :    ....... :  : 我奇怪的是,在OOP的思想中,每个object的private data : 是不应该给其它object 直接使用的,就好象有两个人a1,a2, : 他们都有自己的私隐,a1不允许直接知道和使用a2的私隐。 : 而在C++的语法中却违反了这一OOP的思想。
 
  -- ※ 来源:.网易 BBS bbs.netease.com.[FROM: 210.75.42.129] 发信人: vcc (vcc), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易虚拟社区 (Mon Jul 19 12:03:18 1999), 站内信件
  【 在 crazyjava (骄傲的中国人) 的大作中提到: 】
 : 【 在 Ericuo (帅呆了) 的大作中提到: 】
 : : 具体的解释我忘记了,
 : : 不过因为对a2的private data的使用是在show()这个函数中,
 : : 而这个函数又在类A中,所以一定可以这样用的。
 :    .......
 
 我认为这样不违反oop的精神,private、public等只对派生类和外部应用
 有效,我们总不至于要
 class A
 {
 private:
 ...
 
 public:
 ...
 
 firend A; // ?!
 };
 应该对本类没有限制。
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.146.3] 发信人: crazyjava (骄傲的中国人), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易虚拟社区 (Mon Jul 19 14:12:22 1999), 站内信件
  【 在 vcc (vcc) 的大作中提到: 】
 : 【 在 crazyjava (骄傲的中国人) 的大作中提到: 】
 : : 【 在 Ericuo (帅呆了) 的大作中提到: 】
 : :    .......
 : 
 :    .......
 
 thanx
 
 但是你还没有回答我那个a1能够直接使用a2的
 private data的问题,这样做法不违反OOP吗?
  -- 孤身走我路...
 其实,路,两个人一起走比一个人要好。
 email: [email protected]
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 139.87.93.207] 发信人: Ericuo (帅呆了), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易 BBS (Mon Jul 19 17:46:12 1999), 转信
 
  C++是一种并不完善的纯OOP语言,有很多地方不妥的
  【 在 crazyjava (骄傲的中国人) 的大作中提到: 】 : 【 在 vcc (vcc) 的大作中提到: 】 : : 【 在 crazyjava (骄傲的中国人) 的大作中提到: 】 : :  : :    ....... :  : thanx :  : 但是你还没有回答我那个a1能够直接使用a2的 : private data的问题,这样做法不违反OOP吗?
 
  -- ※ 来源:.网易 BBS bbs.netease.com.[FROM: 210.75.42.130] 发信人: Ericuo (帅呆了), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易 BBS (Mon Jul 19 17:46:58 1999), 转信
 
  纯OOP是指只有类的语言吧
 
  【 在 nxin (角虎) 的大作中提到: 】 : 【 在 crazyjava (骄傲的中国人) 的大作中提到: 】 : : 【 在 Ericuo (帅呆了) 的大作中提到: 】 : :    ....... :  : C++中的private保护是基于类的,类A的成员函数可以访问所有类A对象 : 的private成员变量,编译时没有办法知道所访问的对象是否是当前对象。 : 你说的OOP概念不错,但C++不是纯面向对象语言,不少地方打破了界限, : 这是继承C的结果。 : 纯面向对象语言例如smalltalk中不允许直接访问成员变量,象 : a.m_iData这种写法语法上就是不支持的,要想访问需要写个函数 : int A::getdata(){return m_iData;} : 用a.getdata()的方式访问,这样就保证了只有成员函数才能访问自己 : 的对象。但是不支持a.m_iData的写法在C++中是不可想象的。
 
  -- ※ 来源:.网易 BBS bbs.netease.com.[FROM: 210.75.42.130] 发信人: crazyjava (骄傲的中国人), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易虚拟社区 (Mon Jul 19 18:14:28 1999), 站内信件
  【 在 Ericuo (帅呆了) 的大作中提到: 】
 : C++是一种并不完善的纯OOP语言,有很多地方不妥的
 : 【 在 crazyjava (骄傲的中国人) 的大作中提到: 】
 : : thanx
 : : 但是你还没有回答我那个a1能够直接使用a2的
 :    .......
 
 不错,C++有很多地方不妥。
 
 但是我在JAVA上也测试过,结果一样。不明白JAVA为什么
 也没有改进这方面,还是有其它原因?
  -- 孤身走我路...
 其实,路,两个人一起走比一个人要好。
 email: [email protected]
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 139.87.93.207] 发信人: vcc (vcc), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易虚拟社区 (Mon Jul 19 18:19:00 1999), 站内信件
  【 在 crazyjava (骄傲的中国人) 的大作中提到: 】
 :thanx
 :但是你还没有回答我那个a1能够直接使用a2的
 :private data的问题,这样做法不违反OOP吗?
 我认为private只对派生类有效,
 显然只要是同类型就可以不受限制。
 就象
 class A{
 ...
 //firend A; 
 };
 
 自己和自己做朋友^-^
 
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.146.3] 发信人: Ericuo (帅呆了), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易 BBS (Mon Jul 19 21:44:27 1999), 转信
 
  smalltalk呢?
  【 在 crazyjava (骄傲的中国人) 的大作中提到: 】 : 【 在 Ericuo (帅呆了) 的大作中提到: 】 : : C++是一种并不完善的纯OOP语言,有很多地方不妥的 : : 【 在 crazyjava (骄傲的中国人) 的大作中提到: 】 : :    ....... :  : 不错,C++有很多地方不妥。 :  : 但是我在JAVA上也测试过,结果一样。不明白JAVA为什么 : 也没有改进这方面,还是有其它原因?
 
  -- ※ 来源:.网易 BBS bbs.netease.com.[FROM: 210.75.42.130] 发信人: nxin (角虎), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易虚拟社区 (Tue Jul 20 09:40:14 1999), 站内信件
  【 在 Ericuo (帅呆了) 的大作中提到: 】
 : smalltalk呢?
 : 【 在 crazyjava (骄傲的中国人) 的大作中提到: 】
 : : 不错,C++有很多地方不妥。
 : : 但是我在JAVA上也测试过,结果一样。不明白JAVA为什么
 :    .......
 
 smalltalk是一种非常好的OOP系统,想深入理解OOP必须学习smalltalk,
 C++只是实现了部分OOP思想的语言,是语言,不是系统,这有很大差别。语言
 中的类是静态的,系统中的类是动态的,类也是对象。
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 203.196.1.251] 发信人: crazyjava (骄傲的中国人), 信区: C 标  题: Re: 讨论一个小问题 -- private 发信站: 网易虚拟社区 (Tue Jul 20 16:25:57 1999), 站内信件
  【 在 nxin (角虎) 的大作中提到: 】
 : 【 在 Ericuo (帅呆了) 的大作中提到: 】
 : : smalltalk呢?
 : : 【 在 crazyjava (骄傲的中国人) 的大作中提到: 】
 : :    .......
 :    .......
 
 近来看了比较多的OOP理论上的书籍,所以与语言有点
 混淆了 :P
  -- 孤身走我路...
 其实,路,两个人一起走比一个人要好。
 email: [email protected]
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 139.87.93.201]
  | 
 
 
 |