2009-12-22 146 views
1

我正在从Windows 2000服务器移动一个Dll(内置C++)到2008服务器,但即时通讯有一些麻烦注册它。在2000年,你所需要做的只是一个“regsrv32 name.dll”,但这在2008年将不起作用,因为你得到一个指针错误,iv也尝试使用“gacutil/i name.dll”,因为有人告诉我这可能会起作用,但它没有。所以,我有点绝望,有没有人有一些解决方案,我可以如何让这个c + + dll在2000服务器上工作,以便我可以从一个古老的经典asp页面访问它。Windows Server 2008和COM对象

编辑: 这种运行regsrv时出现错误:‘已加载,但在入口点中的DllRegisterServer未找到

确保‘ “ 模块’name.dll name.dll’是一个有效的DLL或OCX文件,然后再试一次。 “

请注意,我不能,无论如何编辑dll文件。

+0

引用来自regsvr32的错误消息的确切文本可能会有帮助。 – sharptooth 2009-12-22 11:26:14

+0

已注册并添加! – Marthin 2009-12-22 11:38:05

回答

1

如果启用了UAC,你运行一个提升的命令提示符当你调用REGSVR32?如果没有,你可能会在注册函数中得到一个访问被拒绝的错误(这可能会以各种不好的方式表现出旧的东西)。

您必须登录为管理员,然后运行带命令行提示右键单击“以管理员身份运行”。

+0

我以真正的管理员身份运行。 – Marthin 2009-12-22 11:39:21

+0

但你运行提升的命令提示符? Vista,2008和Win7都有另一层安全性 - 当你启动一个进程时,你必须“声明”你的特权,否则你会得到一个无法做任何事情的“弱”管理员版本的管理员。 – nitzmahone 2009-12-22 19:01:55

+0

啊,没关系 - 你的错误信息证明它不是一个普通的COM服务器。如果DllRegisterServer不在那里,使用regsvr32自行注册将不起作用。 – nitzmahone 2009-12-22 19:03:16