开发环境: PB 9.0.3
系统环境: Win XP ,sp3
调用dll文件: taxcardx.dll
现象描述:taxcardx.dll是关于发票的组件接口程序,因为某些原因,必须要先安装发票开票客户端程序并且只能在发票开票系统安装目录下注册。我用regsvr32 进行组件注册,提示成功。然后我想在pb开发环境中,通过ole控件中->Insert Control标签中找到这个组件然后使用就行,但是我找了半天竟然发现没有这个组件。于是我试着点击Register New按钮再注册一下,结果有了如下提示:
taxcardx.dll is not marded as supporting self-registration.
However ,the function "DllRegisterServer" was found.
Do you wish to attempt to register this file as a control ?
我点“确定”按钮之后发现还是没有相应的组件的图标显示。
我又做了如下的努力:
1.通过查注册表,我确认该组件已经注册了。
2.我通过regsvr32 -u卸载这个组件,在pb中仍然注册不了,提示如上面所示的。
3.该组件包含大量的函数和属性值的操作,无法通过声明外部函数的方式调用。
4.在delphi 7中可以通过导入ActiveX组件的方式加载这个组件
5.我通过在程序中用ConnectToNewObject方法调用组件中的类,结果返回不能连接对象的错误码(-4)
至此,小弟思路中断了,不知道该如何进行下一步的工作,请诸位大侠帮忙!
------解决方案--------------------
可以把你的DLL发出来...让大家都看看
------解决方案--------------------
两种方式,一种是你在delphi中查看com组件的类名,类名应该是类似 classobj.myobj的格式,然后用connecttonewobject连接这个类,
第二种如果你实在找不到方法,就用delphi把它的方法封装为dll,然后在pb中调用delphi的方法
------解决方案--------------------
嗯,确实是无法注册
------解决方案--------------------
还有一种可能是你没有安装VC++2005环境运行库的缘故,导致注册失败。