【发布时间】:2016-02-20 09:00:44
【问题描述】:
除了错误使用 DLL 之外,当我尝试在 IntPtr 方法中使用 theTestValue 时,IntelliSense 会将其标记为失败。我想知道为什么会这样,因为我需要在这个方法的外部使用bool。
public partial class Form1 : Form
{
[DllImport("user32.dll")]
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode,
IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll")]
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode,
IntPtr wParam, IntPtr lParam);
private static LowLevelKeyboardProc _proc = HookCallback;
private delegate IntPtr LowLevelKeyboardProc(
int nCode, IntPtr wParam, IntPtr lParam);
public bool theTestValue = false; //This is the value
private static IntPtr HookCallback(
int nCode, IntPtr wParam, IntPtr lParam)
{
theTestValue = true; //Red marked
}
return CallNextHookEx(_hookID, nCode, wParam, lParam);
}
【问题讨论】:
-
阅读错误,也许?您正在尝试从静态方法设置实例成员。
-
感谢您的荣耀提示。实际上,我不想花更多时间在这上面,因为这个 IntPtr Dll MSDN 东西让我恶心。我只想在从代码示例中获得的这段代码中使用这个值。
-
与 int 指针完全无关,基本的 C# 语法。我的意思是你还有一个悬空的
},导致你的return语句在方法之外。您似乎也没有在任何地方使用_proc。 -
谢谢,这是因为我只是复制并粘贴了让我烦恼的完整代码的一部分。我以前做过 C# 教程,但这不是很好。现在我尝试为我的兄弟实现一些程序。但是这个 IntPtr 东西现在对我来说太高了。之后我搜索了一些基础知识。
-
你有什么理由玩钩子,如果你说的是“让你恶心”?刚才好像有点高级。无论如何,让我们知道您的进展情况,如果您有任何其他问题将它们发布在这里,我们将很乐意提供帮助。祝你好运:)
标签: c# methods static-methods intptr