除了錯誤地使用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