发信人: 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]
|
|