什么是VB.NET中的Declare函数的C#等价物?

时间:2015-12-03 09:10:53

标签: c# wpf vb.net syntax telerik

我正在尝试将此VB.NET代码转换为C#:

Private Declare Function GetKeyPress Lib "user32" Alias "GetAsyncKeyState" (ByVal key As Integer) As Integer

我该怎么做呢?我根本找不到Declare Function的等价物。也许我会,但Telerik Code Converter说它的等价物不存在。

任何帮助将不胜感激。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您应该使用DllImport属性。

class Program
{

    [DllImport(@"user32.dll")]
    static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey);

    static void Main(string[] args)
    {
        // Do whatever you want here...
    }
}

答案 1 :(得分:1)

来自 MSDN

  

有时您需要在项目外调用文件(例如DLL或代码资源)中定义的过程。执行此操作时,Visual Basic编译器无法访问正确调用过程所需的信息,例如过程所在的位置,标识方式,调用顺序和返回类型以及字符串字符集使用。 Declare语句创建对外部过程的引用并提供此必要信息。

所以在C#中你会使用 DllImportAttribute Class 作为

[DllImport("user32.dll")]
static extern int GetAsyncKeyState(int key);
....