【发布时间】:2015-02-05 15:33:09
【问题描述】:
我学习 C# 已经有一段时间了。写了一些程序等。我没有处理高级概念,但是在研究其他人的代码时,我注意到有些代码行我不明白为什么它们在那里。在示例中,我知道我知道它正在导入一个 DLL,但不确定这行代码叫什么?是声明吗?我在哪里可以了解更多关于它们的信息?
在不知道它叫什么的情况下尝试了解某事是不可能的:)
例子:
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true)]
static extern IntPtr SendMessage(IntPtr hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam);
【问题讨论】:
-
DllImport用于在托管框架的 .Net 框架中使用非托管代码。阅读更多关于Using the DllImport Attribute -
您应该在询问之前进行搜索。如果您这样做了,您会在网络上找到大量的网页来回答您的问题。
-
@HansKesting 不是。单独搜索
DllImport可以提供大量结果来解释这里发生了什么,或者至少使用也可以搜索的其他术语。STAThread也是如此。 -
如果您搜索过“DllImport”,Google 搜索结果中的第一项是“使用 DllImport 属性 - MSDN - Microsoft”的 MSDN 文章 “STAThread”的第一个结果是指向“[STAThread] 是做什么的?”链接的 StackOverflow 文章。搜索您不知道要搜索的内容可能很困难,但在这种情况下,您知道可以查找“DllImport”。为了将来参考,如果您在发布诸如此类的(非常)基本问题之前再走一步,您将帮自己一个忙。