【问题标题】:How to make a com interface from delphi work in windows seven如何使delphi的com界面在Windows 7中工作
【发布时间】:2012-01-24 02:10:56
【问题描述】:

我的公司运行一个用 delphi 编写的旧应用程序。一个简单的 com 服务器,它为某些计算机提供一些数据库。我必须在每台计算机上运行一次服务器来注册 com 接口,并且它从 windows xp 中的任何东西的远古时代就一直在工作。 使用 windows xp 我从来没有遇到过一个问题,但是在 windows 7 中,课程不会注册,无论我尝试什么(我尝试导出注册密钥),当我打开客户端时,我仍然会收到错误“课程未注册”。

有什么建议吗?请拯救我的圣诞节。

【问题讨论】:

  • This 可能会拯救你的圣诞节 :)
  • Windows 7 具有更高的安全性。事实上,它拥有 XP 从未有过的全新安全层。当访问计算机上的诸如注册表之类的东西时,您必须明确定义您打算如何访问它。例如,Reg:= TRegistry.Create; 然后写入它并得到一个错误。但是使用Reg:= TRegistry.Create(KEY_READ or KEY_WRITE); 就可以了。这也可能是您的问题的一部分。

标签: delphi windows-7 interface dcom


【解决方案1】:

我的 COM 服务器,包括 EXE 和 DLL,都是在 32 位 XP 上用 BCB6(而不是 Delphi)编写的,安装在 64 位 Windows 7 上时它们工作得很好。你只需要确保你运行他们的安装代码来自提升的进程,仅此而已。使用“以管理员身份运行”选项打开 cmd.exe 实例,然后导航到 COM 服务器的文件夹并使用 /INSTALL 参数(对于 EXE)或 32 位版本的 regsvr32.exe(对于 DLL)运行它来自 WOW64 系统文件夹。

【讨论】:

  • 如果你不知道 32 位 regsvr32 是 C:\Windows\SysWOW64\regsvr32.exe
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 2011-11-27
  • 1970-01-01
  • 2013-12-11
  • 1970-01-01
  • 2012-12-19
  • 2015-05-23
相关资源
最近更新 更多