除了错误地使用DLL,当我尝试在IntPtr
方法中使用theTestValue
时,IntelliSense将其标记为失败。我想知道为什么会发生这种情况,因为我需要在该方法内部使用外部的bool
。为什么我不能在IntPtr方法中使用值?
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);
}
阅读错误,也许?您试图从静态方法中设置实例成员。 – CodeCaster
感谢您的荣耀提示。实际上,我不想在此上花费更多时间,因为此IntPtr DLL MSDN内容使我感到恶心。我只想在代码示例中的代码中使用此值。 – user3772108
根本不相关int指针,基本的C#语法。我的意思是你也有一个悬挂'}',导致你的'return'语句在方法之外。你也不会在任何地方使用'_proc'。 – CodeCaster