【问题标题】:Icon Overlay Like SVN像 SVN 一样的图标叠加
【发布时间】:2012-01-28 10:55:13
【问题描述】:

我想像这里一样制作一个图标叠加层:

http://www.codeproject.com/Articles/7484/How-to-overlay-an-icon-over-existing-shell-objects

我下载了此源代码并尝试在 Visual Studio 2010 上构建解决方案,但出现此错误:

Debug Assertion Failed!

Program: C:/Windows/SysWow64/regsvr32
File: f:/dd/vctools/vc7libs/ship/atlmfc/scr/atl/atls/atlbase.cpp

Expression: 0

For more information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.

(Press retry to debug the application)

有没有人让这个代码工作,或者有另一种方法可以在 java 或 c# 甚至 c++ 中放置图标覆盖?

我想要像 svn 这样的图标叠加层添加图标叠加层。

非常感谢。

【问题讨论】:

  • 如果您单击“重试”,我们就会领先,这样我们就知道什么断言失败了。典型的问题是 UAC,它会阻止 Visual Studio 修改注册表。右键单击其快捷方式并选择“以管理员身份运行”。

标签: c++ shell-extensions


【解决方案1】:

您应该为 64 位系统构建 64 位 shell 扩展。路径“C:/Windows/SysWow64/regsvr32”表示您在64位系统上注册32位DLL。

【讨论】:

  • 如何在visual studio上改变路径?这是在代码上吗,因为使用 ctrl+f 在解决方案中没有找到此路径。
  • @user783029:regsvr32 是否作为项目构建的一部分运行?如果是这样,则必须在构建后步骤中指定。首先尝试为项目创建一个新的 x64 项目配置。然后看看会发生什么。 @HansPassant 的注释也很有价值:如果 x64 构建仍然失败,请运行提升的“Visual Studio x64 Win64 命令提示符”并在其中键入 rergsvr yourdll.DLL。该实用程序名称中的“32”令人困惑——它实际上是一个 64 位应用程序。 64 位版本位于 C:\Windows\System32\regsvr32.exe 或您的系统目录所在的任何位置。
  • 我将项目转换为 64 位,但得到与现在不同的相同错误:程序:C:/Windows/System32/regsvr32
  • @user783029:点击重试,然后调试应用程序。需要弄清楚为什么在注册期间会发生断言。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
  • 2021-04-08
  • 2012-04-23
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多