Project->Project Optios->Packages页,
不选Built with runtime packages;
Project->Project Optios->Linker页,
不选Use Dyanmic RTL,
不选Create debug information;
roject->Project Optios->Compiler中Release;
OK? 不许要,其他东西支持

解决方案 »

  1.   

    详细一点好吗?是不是这样以后就只需要一个.ocx文件就可以了?
      

  2.   

       是的,(还有不要用那些需要dll支持的第三方控件!)
      我测试过,可以的。
      

  3.   

    你使用OCX控必须注册,注册了没有?
      

  4.   

    不好意思写错了:-)
    Project->Options->Packages页,
    不选Built with runtime packages;
    Project->Options->Linker页,
    不选Use Dyanmic RTL,
    不选Create debug information;
    Project-> Options->Compiler中Release;
    OK? 不许要,其他东西支持 
      

  5.   

    运行:
     Winexec(c:\windows\system\regsvr32.exe c:\*.ocx);
    regsvr32.exe 还可带参数,如: Regsvr32.exe /s *.ocx(不显示注册成功对话框)。 
      

  6.   

    不好意思,
    我就找不到LINKER 页中的 USE DYANMIC RTL 和 CREATE DEBUG INFORMATION 选项
    还有COMPILER中的RELEASE选项
      

  7.   

       不要意思,那是,bcb的选项。delphi只要:
    Project->Project Optios->Packages页,
    不选Built with runtime packages;
      

  8.   

    通过 HTML 页面部署的 ActiveX 部件,在不同程度上依赖于从该页本身所收集到的脚本和数据。除非设计自己的部件— 那样就可以保证在初始化时与传递给它的脚本和数据安全地相互作用了,否则的话,一个恶意的脚本或者数据可能对用户计算机产生有害的结果,当发生这种情况时,用户就不得不找程序员进行处理。
    在缺省的情况下,Internet 资源管理器将显示一条警告信息,而且对于这些部件— 脚本或者初始化没有标记为安全的,将不进行下载。用 Visual Basic 的“安装向导”对部件进行按装,用 Internet 发布时,可以指定他们的部件作脚本是安全的,初始化也是安全的。
    作脚本是安全的
    在 HTML 页面上,部件的功能是通过作脚本(比如说通过 VBScript 来对事件进行处理)来访问的。对于 ActiveX 控件来说,作脚本是使得控件的特点在浏览器中有效的唯一途径。因此虽然控件可能是来自于某个声誉良好的控件源(程序员),是一个值得信赖的部件,但是一个恶意的脚本,可能用自己的方法来删除用户机器上的文件、装上宏病毒,等等。当某个部件不会作出对用户的计算机造成危害的脚本时,该部件对作脚本就是安全的。
    当且仅当某个控件不放弃用其来作脚本的安全性时(尤其是对于恶意的脚本来说),应该将其标记为作脚本是安全的。这意味着该部件将不会产生任何这样的行为— 使有理智的用户感到在预期该部件将做的事情的上下文中,该行为是不可接受的。该部件不受恶意的脚本企图造成的破坏的影响,这应该是程序员的承诺。
    例如,对于一个标记为作脚本安全的 ActiveX 控件来说,不管对它们如何作脚本(即怎样在 HTML 页面中对它们进行编程使用),都不会将用户的系统搞垮。对于用户不能期望收集关于他们自己或者他们的 PC 机信息的控件来说,该控件就不能使脚本得到可用的信息。脚本就不应该使用标记为作脚本安全的控件,来对任意的文件(甚至包括临时文件)进行创建、更改或删除,或者也不能对系统设置值进行更改。
    初始化是安全的
    另一个潜在的安全威胁,是用不可信任的数据来对控件的状态进行初始化。在 HTML 页面上,控件的初始状态是由 PARAM NAME 属性设置的,该属性是随同嵌入该控件的 HTML 中的 OBJECT 标签而来的。当某个部件的属性不能传递以某种方式对用户的计算机造成危害的数据时,该部件就是初始化安全的。将验证改变的代码(包括在 InitProperties 事件和 ReadProperties 事件中的那些代码)放在属性值中,可以完成这件事。
    当且仅当某个控件不能用任何数据— 尤其是恶意的数据来放弃被初始化时的安全性时,就应该将该控件标记为初始化安全的。这意味着该部件将不会产生任何这样的行为— 使有理智的用户感到在他们预期该部件将做的事情的上下文中,该行为是不可接受的。该部件不受恶意的数据企图造成破坏的影响,这应该是程序员的承诺。
    例如,对于一个标记为初始化安全的 ActiveX 控件来说,不管在初始化过程中传递给该部件的数据如何,都不会将用户的系统搞垮。初始化数据将不会使该控件对任意文件(甚至包括临时文件)进行创建、更改或删除,或者对系统设置值进行更改。在 HTML 页面上使用部件时,所使用的浏览器就是容器,而开发环境可以是许多工具中的任何一个— 包括 Notepad。在这种上下文中,安排部件运行时许可证的方法应当与 Visual Basic 环境中所用的方法不同。
    当用 Visual Basic 作为开发环境时,可以为所包括的部件(比如说控件)购买设计时许可证。当设计接口时,Visual Basic 就使用该许可证来为该控件以及设计器(比如说,窗体或者 UserDocument)嵌入免费的运行时许可证,从而允许任何人都可以使用已编译过的应用程序,而不用分别为该控件付款。
    当把某个 HTML 页面用于开发时,该页面的完整代码内容(HTML 以及其它脚本),对于想查看它们的任何其他用户来说,都是可以得到的。在这里,将运行时许可证信息包括进去,就会使控件可以在任何地方自由发放和重用。为了避免这个问题,通过 HTML 页面来对该部件进行访问的运行时许可证信息,应该被包括在存储于 Web 服务器上的一个独立的文件中。
    在缺省情况下,Internet 资源管理器 3.0 需要这样的 HTML 页面— 它带有得到许可的部件,该部件可以把相关联的许可证包(它存储所有部件的运行时许可证信息)的引用包括进来。在需要许可证信息的部件通过 HTML 页面可以创建出来之前,必须调用 Internet 资源管理器的许可证管理器,并使其指向验证许可性的 .lpk 文件。
    正如在下面的 HTML 代码片段中所示,该 .lpk 文件的文件名是作为 Internet 资源管理器的许可证管理器对象的 LPKPath 参数值给出的。在这种情况下,该 .lpk 文件驻留在 HTML 页面的同一目录下:
    <OBJECT 
        CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
        <PARAM NAME="LPKPath" VALUE="MyCompnt.LPK">
    </OBJECT>
        
    在运行时,Internet 资源管理器从许可证包中提取所需要的运行时许可证,以便于创建嵌入到 HTML 页面中、得到许可的控件内。
    当创建对许可证包的引用时,一定要使 URL 引用与 HTML 页面相关,而不是对其完全限定。如果用户还没有自己的 .lpk 文件的副本,那么就不能用相关的 URL 来复制 HTML 页面,也不能期望可以得到许可证信息。当然,仍然可能会有某些人对该 .lpk 文件进行非法复制—如果能够对目录进行浏览的话。为了进一步阻止可能出现的非法复制者,可以在 .lpk 文件的文件头上将法律上的版权说明(可以用普通文本格式来进行存储)包括进去。因为通过 Internet 接收到的代码没有经过压缩性包装来保证其可靠性,所以可以理解的是,当要求用户对其进行下载时,用户可能对这些代码发生怀疑。数字署名为软件提供了这样一个机会— 若是软件对用户的系统有所危害的话,就可以通过创建一条从用户到软件那里的路径(这是借助于对软件证书授权的公司— 即证书授权),来向他们作出保证。(注意,数字签名将程序员的名字放到代码中,但是并不保证它就是没有什么危害的。)
    当开发要在 Internet 上发布的软件时,就要使用叫做证书授权 (CA) 的第三部分,从而得到一个数字证书— 它将把有关信息提供给用户。CA 能提供和更新证书、授权和标识,并对破坏安全性的行为进行法律和义务上的处理。数字证书被包括在做数字签名的代码中,并在 Internet 上发布。
    简而言之,下面是数字签名如何在 Internet 发布中工作的情况:
    1.    使用函数创建一个独立的文件(或叫摘要)— 该文件代表了代码的唯一抽象代表。使用特殊算法,该函数就可以产生这样的结果— 当在代码中再次使用时,该结果自己就可以复制出来。
    2.    该独立文件被加密,并与函数的散列算法以及数字签名(它保存程序员的名字、程序员的 CA 证书,以及对摘要进行解密的方法)相结合。所有这些元素都被放到叫签名块的独立文件中。
    3.    当用 Visual Basic 的“安装向导”来对 Internet 发布的部件进行包装时,该向导就为其创建的 .cab 文件中的签名块留出空间。
    4.    当下载代码时,Internet 资源管理器将签名提取出来、识别授权证书的 CA,并对摘要进行解密。
    5.    然后散列算法在代码上再运行一遍,从而创建一个新的摘要。然后将旧的摘要和新的作比较。
    6.    如果自从代码被签名以来还未被修改过,那么新的摘要就与旧的相匹配。如果两个摘要不匹配的话,那么代码就变得有些可疑,从而提出警告。
    关于数字签名的最新信息,可以用自己的 Internet,访问位于 www.microsoft.com/devonly/ 的 Microsoft Web 站点上的“For Developers Only”。如果想从 Visual Basic 开发环境对该站点进行访问,可以单击 Visual Basic 的“帮助”菜单,指向“Web”上的“Microsoft”,然后单击“For Developers Only Home Page”。可以从 Microsoft 得到的 ActiveX SDK,也包括了开始使部件进到数字签名所需要的工具。
      

  9.   

       还有看看:
       http://www.csdn.net/expert/Topic/73/73233.shtm