Ben*_*ual 2 vb6 com winapi regsvr32 cmd
我可以注册一个COM DLL(写在VB6)dowFct.dll成功地用
regsvr32 dowFct.dll
Run Code Online (Sandbox Code Playgroud)
但是当我尝试用它时
regsvr32 dowFct.dll /i
Run Code Online (Sandbox Code Playgroud)
我收到错误(从德语翻译成英语):
模块dowfct.dll已加载但未找到DllInstall入口点.
我问我,如果使用regsvr32与/ i并没有任何其他参数是不一样的?在这种情况下,有人可以帮我解决问题吗?- 谢谢.
/i选项,regsvr32将加载DLL并调用导出的函数DllRegisterServer./i选项,regsvr32加载DLL并调用导出的函数DllInstall.很明显,你的DLL不会导出DllInstall,因此它似乎可能会通过调用注册DllRegisterServer.因此,/i在调用regsvr32时省略该选项.
该文档DllInstall解释了这两个功能之间的区别:
DllInstall仅用于应用程序安装和设置.它不应该由应用程序调用.它的用途与DllRegisterServer或DllUnregisterServer类似.与这些函数不同,DllInstall采用输入字符串,可用于指定各种不同的操作.这允许基于适当的任何标准以多种方式安装DLL.
要在regsvr32中使用DllInstall,请添加一个"/ i"标志,后跟一个冒号(:)和一个字符串.该字符串将作为pszCmdLine参数传递给DllInstall.如果省略冒号和字符串,pszCmdLine将设置为NULL.以下示例将用于安装DLL.
regsvr32 /i:"Install_1" dllname.dll调用DllInstall时,bInstall设置为TRUE,pszCmdLine设置为"Install_1".要卸载DLL,请使用以下命令:
regsvr32 /u /i:"Install_1" dllname.dll使用上述两个示例,还将调用DllRegisterServer或DllUnregisterServer.要仅调用DllInstall,请添加"/ n"标志.
regsvr32 /n /i:"Install_1" dllname.dll