你是否遇到过这样的问题:一个带有OCX部件的应用程序在开发环境与你的计算机上运行得很好,但当你发行你的程序并安装到用户的机器上时,OCX不能正常工作了?
这个问题现OCX的工作方式有关:每个OCX部件在其constructor事件中存取系统注册表中它自已的信息。这由OCX容器通过调用在每个OCX控件中的DLLRegisterServer函数来实现。
问题是PowerBuilder并没有调用这个函数,即使你运行REGSRV程序, OCX也不能注册它自己。为了解决这个问题, 在你需要使用OCX部件的对象你需要在其constructor事件中调用 DLLRegesterServer函数。
在容器对象中定义一个局部的外部函数 Function long DllRegisterServer() Library "ocxname.OCX"
在constructor事件中编写如相的代码
LONG ll_RC
ll_RC = DllRegisterServer()