授人以渔,不授人以鱼。
所谓OLE,即Object Linking and Embedding,是“对象连接与嵌入”的意思,顾名思义,是把一些外部的对象通过链接或直接嵌入的手段,应用到程序环境中。既然是链接或嵌入,那么这些对象就是外置的,不是程序语言本身包含的。当在编程时,向表单添加OLE控件的时候,你留意一下,选择ActiveX后,列表需要一段时间,然后搜索出一大堆控件,而这些控件很多是随着系统环境不同而不同的,比如假定你的机器没有安装Office,那么就不会出现Word、Excel之类的控件,这样,你就知道这个动作是跟外部环境有关的。
VFP内置的控件,有些是直接使用Windows系统的DLL系统类库,有些是使用Windows提供的公共基础类库,有些则是VFP程序开发小组写好后通过安装程序安装在系统中(比如VFP SP2提供的控件就跟原版有区别)。只要某些应用程序提供OLE对象,它就会向Windows系统注册表写入信息,告诉Windows在什么位置、什么文件名是一个OLE对象可供使用,上面VFP添加控件的操作,就从Windows注册表中检索这些信息。上面图中列出的,只是被写在Windows\System32中的.OCX类库(看日期就知道有些是新的有些是旧的,我用的Win7,即有些旧的是VFP写进去的),有些是不在这里的(比如Office那些)。不同的系统环境,提供不一样的.OCX控件,行为也不相同。一般来说,尽量使用通用的OLE控件,特殊的,最好连带发布程序一起向外发布,即自己拷贝这些.OCX文件到目标机器上。
[ 本帖最后由 TonyDeng 于 2012-4-26 11:29 编辑 ]