Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在Proc SxS中,是否打开托管代码中的shell扩展?_.net_Windows_Shell Extensions - Fatal编程技术网

.net 在Proc SxS中,是否打开托管代码中的shell扩展?

.net 在Proc SxS中,是否打开托管代码中的shell扩展?,.net,windows,shell-extensions,.net,Windows,Shell Extensions,以前的建议是 但是对于.NETFramework4,不在托管代码中编写shell扩展的主要原因应该得到解决 话虽如此,我有三个问题 现在可以在托管代码中编写shell扩展了吗 在托管代码中编写shell扩展可能存在哪些问题(如果有的话) 在非托管代码中编写shell扩展可能有什么原因 现在可以在.NET4托管代码中编写shell扩展了。您仍然应该避免在.NET3.5或更早版本中编写shell扩展,因为这些早期版本不支持在proc中并行 是的,没关系 需要在托管代码中声明的大量shell接口、函数

以前的建议是

但是对于.NETFramework4,不在托管代码中编写shell扩展的主要原因应该得到解决

话虽如此,我有三个问题

  • 现在可以在托管代码中编写shell扩展了吗
  • 在托管代码中编写shell扩展可能存在哪些问题(如果有的话)
  • 在非托管代码中编写shell扩展可能有什么原因

  • 现在可以在.NET4托管代码中编写shell扩展了。您仍然应该避免在.NET3.5或更早版本中编写shell扩展,因为这些早期版本不支持在proc中并行

  • 是的,没关系
  • 需要在托管代码中声明的大量shell接口、函数、结构等是一个巨大的问题和时间消耗。您必须非常小心,因为即使是单个参数的一个错误声明也可能导致爆炸、访问冲突、内存泄漏以及其他可能需要数小时才能跟踪的情况
  • 唯一的原因是您喜欢或被迫使用非托管语言

  • 查看这篇MSDN文章,它消除了上面的#2以及一般开发命名空间扩展所需的时间(无论是在托管还是非托管中)。

    查看这篇MSDN文章: 用.NET Framework 4(C#,VB.NET)编写Windows外壳扩展-第1部分
    谢谢你的回答,我想我必须试着写一个并做一些测试。谢谢,我已经用C++编写了shell扩展,shell API并不那么简单,所以我猜如果你从C语言中使用它的话是一样的。我发现了这个托管的迷你Shell扩展框架,但我还没有研究过它。