请问安装程序是如何注册控件的?
我用VB开发了一个程序,其中用到了第三方控件,用安装程序打包后安装,程序能够正常运行。
但用regsvr32.exe手动对用到的.dll文件进行手动注册,但程序不能正常运行。
请问VB程序运行时如何对用到的.dll文件进行注册?
程序运行时用api函数注册能行吗?
安装程序是否也是采用api函数注册的?是否也用api函数注册?先将activex控件载入内存,然后验证其有效性,最后直接在内存地址中执行其注册函数(dllregisterserver、undllregisterserver)。1、使用windows api函数loadlibrary载入activex控件;
2、使用getprocaddress函数获取activex控件中注册函数dllregisterserver(注销函数为dllunregisterserver)指针;
3、使用callwindowproc函数执行已载入内存的activex控件注册函数(dllregisterserver、undllregisterserver)

解决方案 »

  1.   

    用InstallShield X吧,它可以在你添加文件时自动判断控件和控件是否需要注册。
      

  2.   

    最容易的方式是在安装时自动注册用户Dll
    操作最方便的要算Setup facotry,楼主去下载一个,让安装程序自动注册的方法是:
    点文件->属性->高级->注册com接口 
    OK
      

  3.   

    InstallShield 8.0 和 Setup Factory 7.0打包.
    点要注册的dll文件,设置属性为自动注册类.
    本人比较喜欢Setup Factory 7.0比较直观.
      

  4.   

    用安装程序我也会呀.我以前是用Setup Factory 6.0的,现在的Setup Factory 7.0好象汉化不完全.谁有完全的?
    大家都误会我的意思了.我是想利用安装程序的功能,在程序运行时自己注册.这样不是可以不用安装.直接复制也可运行了?有自己编写的Active 类也要注册.真是不爽.
      

  5.   

    我用regsvr32.exe还算正常啊请问RUNDLL是个什么程序啊,3721每次运行都要运行这个程序