我正在尝试将此VB.NET代码转换为C#:
Private Declare Function GetKeyPress Lib "user32" Alias "GetAsyncKeyState" (ByVal key As Integer) As Integer
我该怎么做呢?我根本找不到Declare Function
的等价物。也许我会,但Telerik Code Converter说它的等价物不存在。
任何帮助将不胜感激。提前谢谢。
答案 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);
....