【问题标题】:Equivalent of Win32's ________ in .NET.NET 中 Win32 的 ________ 等价物
【发布时间】:2010-10-14 00:12:25
【问题描述】:

我最近需要找到与 ShellExecute 等效的 .NET,我很高兴能够在 StackOverflow 上快速找到答案。但肯定有文件或清单可以让我更快地得到这个答案。

当我从 ANSI 编程转到 UNICODE 时,微软有这个方便的例程映射页面:

http://msdn.microsoft.com/en-us/library/Aa272889

我将其中的一些放到一个文本文件中,当我需要知道 strlen 的 Unicode 等价物时,我只需 grep 文件中的 strlen 即可:

C:\> grep strlen textfuncs.txt

strlen    _tcsclen
strlen    _tsclen

是否有人拥有或知道类似 Win32 -> .NET 的列表?

【问题讨论】:

  • 一个使用 grep 的 Windows 程序员?
  • @erjiang:这种情况并不少见。

标签: .net winapi


【解决方案1】:

这里的部分问题是 Win32 没有直接迁移到 .NET。

.NET Framework 处理大部分 Win32 API 功能,但它以非常不同的方式处理。它不只是尝试映射函数,而是将功能映射到框架类型。有时,这是一个非常直接的映射,但有时,许多不同的 API 混合在一起,部分被重写为托管代码等。

通常,快速搜索“目标”而不是函数会很快找到正确的 API。

【讨论】:

    【解决方案2】:

    .net API 是一个成熟的对象库。从 win32 到 .net 很难进行一对一的映射。但在大多数情况下,快速的谷歌搜索将能够让您进入正确的课程。

    【讨论】:

      【解决方案3】:

      你不是在寻找这样的东西吗:

      Microsoft Win32 to Microsoft .NET Framework API Map

      【讨论】:

      • PInvoke.net 也很有帮助,但上面链接的 MS 页面更接近我正在寻找的内容(例如,它都在一个页面上)。如果它更完整。感谢大家的帮助。
      【解决方案4】:

      不完全是 1-1 映射,但您可以在 .NET 中找到与使用 Win32 调用相关的大部分内容:http://www.pinvoke.net

      有很多Win32函数、相关文档和示例代码。

      【讨论】:

        【解决方案5】:

        此站点非常适合 .NET 到 Win32 互操作:

        PInvoke.net: the interop wiki

        有可用的“替代托管 API”条目,但由于 Win32 API 的细粒度特性,托管 API 中可能没有等效项。托管 API 中的单个方法可能需要跨多个库多次调用 Win32 才能完成单个任务。

        当托管语言/API 不提供该级别的粒度时,要求确切的等效项就像询问汇编语言指令的托管等效项是什么。

        【讨论】:

        • 这一般不会如他所愿。
        • 没有。他希望 BCL 中的类或方法与 Win32 API 等效。他不是要[DllImport] s。
        • @Slaks - 如果您仔细查看该站点,可以找到“替代托管 API”描述。
        • @Slaks:显然你从未使用过 pinvoke.net。这正是所要求的。例如,在pinvoke.net/default.aspx/shell32/ShellExecuteEx.html 上,您会找到一个“替代托管 API”部分,其中包含 Process.Start 的示例
        • 然而 chakrit 在几秒钟前得到了非常相似的答案。
        【解决方案6】:

        我偶然发现了这个页面,它很好地提供了我正在寻找的东西:

        C# for MFC Programmers - Quick Equivalents Map

        【讨论】:

          猜你喜欢
          • 2017-04-04
          • 2011-01-27
          • 1970-01-01
          • 2010-10-31
          • 2011-06-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-09
          • 1970-01-01
          相关资源
          最近更新 更多