实用工具:对象查找器(ObjectLookup)介绍

在软件开发过程中,经常需要处理各种对象,这些对象可能是通过ProgID或CLSID来标识的。为了帮助开发者更高效地管理和引用这些对象,开发了一款名为ObjectLookup的实用工具。这款工具能够根据给定的ProgID或CLSID,快速找到对应的类名和可执行文件,从而简化了在Visual BasicC++项目中引用对象的过程。

功能增强与界面改进

ObjectLookup工具在最近的更新中,不仅增强了其核心功能,还对用户界面进行了优化。例如,现在默认情况下,ProgID字段会自动获得焦点,用户可以通过快捷键快速操作,提高了工作效率。

对象查找器的用途

ObjectLookup工具的主要应用场景包括:

  • 当拥有一个ProgID,并且想要在Visual Basic项目中通过'引用'来引用它,但不知道如何找到包含该对象的DLL文件时,ObjectLookup可以帮快速定位。
  • 当需要将基于ProgID的Visual Basic示例代码转换为基于CLSID的C++代码,而不想使用ProgIDToCLSID() API时,ObjectLookup可以提供必要的信息。

手动获取信息的替代方案

虽然通过注册表编辑器也可以手动获取这些信息,但ObjectLookup工具可以大大简化这个过程,减少不必要的麻烦。

源代码的获取与使用

ObjectLookup的源代码是完全开放的,可以自由地修改和使用,只要不将其用于商业销售。该程序是用Microsoft VisualC++v. 6.0 SP3在Windows 2000上编译的。

致谢

ObjectLookup的实现得益于Joerg Koenig编写的一个非常出色的注册表类。

源代码示例

#include "Registry.h" int main() { Registry reg; CString clsid; CString progid = "YourProgIDHere"; CString executablePath; if (reg.OpenKey(HKEY_CLASSES_ROOT, progid + "\\CLSID") == ERROR_SUCCESS) { reg.QueryValue(NULL, clsid); reg.CloseKey(); if (reg.OpenKey(HKEY_CLASSES_ROOT, clsid + "\\InprocServer32") == ERROR_SUCCESS) { reg.QueryValue(NULL, executablePath); reg.CloseKey(); } } if (!executablePath.IsEmpty()) { printf("CLSID: %s\nExecutable Path: %s\n", (LPCTSTR)clsid, (LPCTSTR)executablePath); } else { printf("CLSID or Executable Path not found.\n"); } return 0; }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485