首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

请问:VB写的DLL的调用有关问题,

2013-07-04 
请教:VB写的DLL的调用问题,急请教了: 我用VB写的ActiveX DLL (给Web调用的),如何不让别人通过程序或者Web

请教:VB写的DLL的调用问题,急
请教了:

 我用VB写的ActiveX DLL (给Web调用的),如何不让别人通过程序或者Web调用,想保护自己的产权,多谢指点了 VB Web activex DLL 加密
[解决办法]
除非你的部件很出名,或者是一种标准,否则,一般是不会有人其用你的
[解决办法]
控件的许可证问题


控件的许可证是个敏感的问题。在花费了数百个小时开发了一个控件之后,如果有其它人把它的一个实例放在 UserControl 上,就会显露它所有的属性、方法和事件,增加一两个琐碎的属性,然后编译并将其作为新控件出售,那该怎么办?

Visual Basic 的许可证支持可以保护投资。如果为控件部件添加许可证支持,一个许可证键会被编译到控件之中。这个键覆盖了部件中的所有控件。

运行安装程序后,该许可证键将被传递到另一台计算机的注册表,从而允许用您的控件进行开发。如果只是简单把 .ocx 文件复制到另一台计算机并注册它,那么许可证键没有被传递,因此该控件就不能被使用。

要为控件工程添加许可证支持,请 

在“工程”菜单上,单击“<MyProject> 属性”打开“工程属性”对话框。选择“通用”选项卡,选定“要求许可证关键字”复选项,然后单击“确定”。 
在生成 .ocx 文件时,Visual Basic 会创建含有注册键的 .vbl 文件,用来为控件部件提供许可证功能。在用Package and Deployment 向导为 .ocx 创建安装程序时,.vbl 文件会被自动地包含在安装过程中。

许可证如何工作
当某个开发者购买了控件部件并运行安装程序时,该许可证键将被添加到他的计算机上的注册表中。

这样,每当这个开发者把您的控件的实例放置到窗体上时,Visual Basic(或其它任何开发工具)会使用该注册表键告诉该控件创建自己。

如果某个开发者获得了控件部件的副本,但没有注册表键,该控件就不能在开发环境中创建其实例。

当开发者发布应用程序时
当开发者编译使用您的某个控件的程序时,部件的许可证键会被编译到其中。当他为此程序创建安装程序时,您的 .ocx 将被包含进去。然后用户就可以购买编译好的程序并运行安装程序。您的控件被安装到每个用户的机器上,但是您的许可证键未被添加到注册表中。

每当用户运行该程序时,Visual Basic 的运行时 DLL 会请求您的控件创建一个运行实例,并把编译到程序中的那个键传递给它。控件不必检查注册表,因为 Visual Basic 会把键传给它。

这样用户就可以运行编译过的应用程序,而不必在注册表中拥有该控件部件的许可证键。

许可证和用户
假设用户后来得到了一份 Visual Basic 副本。注意到您的控件部件已被安装到他的机器上,他在一个工程中添加了您的 .ocx 文件。

第一次他试图将您的某个控件的实例放到窗体上时,Visual Basic 会告诉该控件使用注册表键创建其自身。但键不在那里,所以该控件部件就不能被用于开发环境中。

许可证和一般用途的用户应用程序
当 Microsoft Word 和 Microsoft Excel 等桌面应用程序在文档或用户窗体上创建控件实例时,它们会告诉控件使用注册表中的许可证键创建自己的实例。这意味着许可证控件不能被最终用户使用,除非这个用户购买并安装了您的控件部件。

用户文档不能把许可证键编译进去。假设某个桌面应用程序的用户把一份您的控件部件副本和包含您的控件的文档给了合作者。当该文档被打开时,控件会被要求创建其运行时实例-使用注册表键。

也就是说,此合作者也必须购买并安装了您的控件部件。否则,当该文档被打开时,控件实例是不能创建的。

如果公司开发者制作的 ActiveX 控件是用于公司内部的最终用户,那么省略许可证支持可能会更加方便。这可以使最终用户更加容易地发布含有该控件的文档。

许可证与控件制作者
现在假定有人购买了您的控件部件,并决定用其中的某个控件来编写自己的新控件。正如其它程序一样,当用户编译自己的控件部件时,您的许可证键会被编译进去。安装向导会为新的控件创建一个许可证键,但不把您的许可证键添加到安装程序中。

当开发者安装这个新的代码部件时,其许可证键被放到注册表中。开发者然后运行 Visual Basic,并试图在窗体上放置该控件的实例。



该控件会被要求用其注册表键创建自己。接着,它要求子控件用其注册表键创建自己。您的控件不能在注册表中找到它们的许可证键,所以控件创建要失败。

发布使用许可证控件的控件
如果控件制作者想发布新控件,他使用了您制作的控件,那么就必须告诉购买者:为了使用他的控件,顾客的计算机必须安装您的控件部件。

另外一种方法是,控件制作者与您协商,您允许在他的控件的安装程序中发布您的许可证键。

在以上任何一种情况下,两个许可证键都会被安装到开发者的机器上,因此开发者可以创建第二个制作者的控件的设计时实例。当这些控件被编译到可执行程序中时,两个许可证键都将被编译进去。

后来,当用户安装并运行此程序时,会要求第二个制作者的控件创建其自身。也会要求它的子控件创建自身,并且传递他们的许可证键。(以此类推,如果您的控件使用了带有许可证键的子控件。)

注意 Visual Basic 专业版提供的 ActiveX 控件中,只有 DBGrid 控件在开发人员的计算机上要求许可键。例如,如果用 TreeView 控件作为子控件,则任何获准使用 TreeView 控件的人员都被允许将 TreeView 作为您的控件的部分来用。但要记住, Microsoft License Agreement 要求您对可重分配的 TreeView 添加有意义的主要功能,以将它作为所开发软件的部分合法分配。

详细信息 关于子控件,包括与 Professional Edition of Visual Basic 一起提供的子控件,的许可证和发布的内容,请参阅本章前面的“可作为子控件使用的控件”。

许可证与 Internet
与支持控件许可证的浏览器结合,许可证控件可以用于 World Wide Web 页面上。这要求控件部件和许可证键都应该能够被访问 Web 页面的计算机下载。

被下载的许可证键未被加到注册表中。相反,浏览器要求控件创建自己的运行时实例,并将下载的许可证键传给它。

为了能够提供控件和许可证,使用您的控件的 Web 服务器的所有者必须购买并安装了您的控件,正如开发者需要做的那样。

如果不能得到许可证,则控件创建会失败,而且浏览器会收到标准的控件创建错误。浏览器是把此错误信息传递给访问 Web 页面的人,还是简单地忽略它,这取决于浏览器的开发者。

注意 Visual Basic 专业版提供的 ActiveX 控件中,只有 DBGrid 控件在 Web 服务器上要求许可键。例如,如果用 TreeView 控件作为子控件,则任何获准使用 TreeView 控件的人员都被允许将 TreeView 作为您的控件的部分来用。但要记住, Microsoft 许可证协议要求您对可重分配的 TreeView 等添加有意义的主要功能,以将它作为所开发软件的部分合法分配。

详细信息 请参阅本章前面的“可作为子控件使用的控件”。

[解决办法]
彻底预防调用是不可能的。
通常加入USB狗的验证,可以保证一定的保密性。

热点排行