在Visual Studio 2010中创建Windows外壳程序扩展

jos*_*ley 14 windows shell-extensions visual-studio-2010

我正在尝试使用Visual Studio 2010在C++中创建一个荒谬简单的shell扩展,但我似乎甚至无法将示例作为起点.

我使用的是Windows 7 x64.

我已经尝试过这个Visual Studio模板,但是一旦我让模板在VS2010中工作,我就会遇到很多错误,我不知道如何修复.

我已经尝试了The Complete Idiot编写Shell扩展指南,一旦演示编译了所有正确的注册表设置等,就会创建,但不会出现上下文菜单.

我已经看过这个C#COM Interop示例了,但是由于这篇文章*,我对使用C#是否安全感到困惑,但是如果我使用.NET 4看起来我可能会好的,因为它支持正在进行并行CLR托管.

  • 简而言之:历史上,两个版本的.NET无法在同一个进程中运行,而shell扩展的工作方式是将它们注入到进程中.所以,如果.NET 3.5被注入到.NET 2的过程- 爆炸

那么,我现在可以使用.NET 4.0吗?

是否有可下载的VS2010解决方案,增加了简单的shell扩展?

我过去常常对C++没有那么糟糕,但经过多年的.NET成型后,我很生疏,因此,摆弄细节来解决我现在的例子所带来的错误.正在证明......狡猾!

我真的可以做一个干净的石板开始,我可以打破自己,弄清楚做错了什么!

wtj*_*nes 7

由于x64问题和SDK差异,我在代码项目文章中努力了一段时间并且取得了有限的成功.

我最近选择了该项目,并开始使用MS all-in-one代码示例,我非常高兴.它创建了一个简单的示例上下文菜单,x64开箱即用:http://code.msdn.microsoft.com/windowsdesktop/CppShellExtContextMenuHandl-410a709a

要让它在您的计算机上运行:

  1. 通过一体化示例浏览器下载代码或使用直接链接.
  2. 在管理员权限下在VS中打开项目
  3. 将构建配置切换到x64并构建它
  4. 杀死所有资源管理器会话
  5. 找到新的dll并运行regsvr32.exe.\ CppShellExtContextMenuHandler.dll
  6. 再次打开资源管理器并右键单击.cpp文件以查看新菜单
  7. 通过使用/ u标志运行相同的命令来删除它

我的下一步是调试工作,我认为这可能会成功:msdn