【发布时间】:2010-09-08 18:05:32
【问题描述】:
我正在尝试使用 Visual Studio 2010 在 C++ 中创建一个非常简单的 shell 扩展,但我什至无法将示例作为起点。
我使用的是 Windows 7 x64。
我已经尝试过this Visual Studio template,但是一旦我让模板在 VS2010 中工作,我就会遇到许多不知道如何修复的错误。
我尝试过The Complete Idiot's Guide to Writing Shell Extensions,一旦演示编译完成,所有正确的注册表设置等都会创建,但不会出现上下文菜单。
我查看了this C# COM Interop example,但由于this article*,我一直对使用C# 是否安全感到困惑,但如果我使用.NET 4 看起来我可能没问题,因为it supports in process side-by-side CLR hosting.
- 简而言之:历史上两个版本的 .NET 不能在同一个进程中运行,而 shell 扩展的工作方式是将自己注入到一个进程中。因此,如果 .NET 3.5 被注入到 .NET 2 进程中 - bang
那么,我现在可以使用 .NET 4.0 了吗?
是否有一个工作的、可下载的 VS2010 解决方案添加了一个简单的 shell 扩展?
过去我对 C++ 的使用并没有那么糟糕,但是经过多年的 .NET 成型后,我已经很生疏了,因此,我一直在摆弄细节来修复我遇到的大量错误现有的例子证明......很繁琐!
我真的可以从头开始,我可以打破自己并找出我做错了什么!
【问题讨论】:
-
是的,您现在可以使用 .NET 4.0。进程内并排是为了支持这种用法而明确发明的。
-
@Hans - 所以 .NET 4 将注入 .NET 2 并且一切都会继续存在?
-
如果可能的话,我会劝阻它,这意味着系统上的每个应用程序都会在打开文件对话框时加载 CLR...
-
@Paul Betts:我会两次支持您的评论;我们都记得那个愚蠢的 ATI 快捷方式(使用 CLR shell 扩展制作),它使桌面上的每次右键单击都成为 PITA...
标签: windows visual-studio-2010 shell-extensions