【问题标题】:What is "ShowWindow Lib "user32" " about?"ShowWindow Lib "user32" " 是关于什么的?
【发布时间】:2009-06-24 18:27:18
【问题描述】:

我正在查看另一位开发人员编写的一些代码,发现:

Private Declare Function ShowWindow Lib "user32" (ByVal handle As IntPtr, ByVal nCmdShow As Integer) As Integer
Private Declare Function SetForegroundWindow Lib "user32" (ByVal handle As IntPtr) As Integer

它有什么作用和用途?

【问题讨论】:

    标签: vb.net interop pinvoke


    【解决方案1】:

    这些是 PInvoke 声明。它们代表存在于 C 库中的函数,并以允许从 VB.Net 调用它们的方式定义。例如,ShowWindow 是 user32.dll 中存在的 Win32 ShowWindow 函数的声明。调用这个存根最终会调用 C 函数。

    显示窗口:http://msdn.microsoft.com/en-us/library/ms633548.aspx

    这种特殊的声明风格被称为 Dll Declare。更常见的语法是使用 DllImport 和共享方法(主要是因为它与 C# 的实现兼容)。 DllDeclare 语法在很多方面都继承自 VB6 风格的互操作。

    【讨论】:

    • 我认为没有理由避免使用 Declare 语法,除非您确实需要在 DllImport 属性中指定可选参数。
    • 我曾经喜欢这个隐藏外部应用程序窗口的代码,但是当我需要重新显示它时没有运气。难怪。 :D
    【解决方案2】:

    这些几乎可以肯定是 P/Invoke 调用;即允许您调用 Windows API 函数的声明,该声明在 user32.dll 中声明。

    【讨论】:

      猜你喜欢
      • 2010-10-01
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-25
      相关资源
      最近更新 更多