Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 传递给委托f的不可比较参数类型#_F# - Fatal编程技术网

F# 传递给委托f的不可比较参数类型#

F# 传递给委托f的不可比较参数类型#,f#,F#,我正在尝试将委托传递给外部托管API 委托功能是: type HookProc = delegate of int * nativeint * nativeint -> nativeint 代表的功能: let HookCallback(nCode:int,wParam:System.IntPtr,lParam:System.IntPtr) = let t = (int)wParam if t = WM_

我正在尝试将委托传递给外部托管API 委托功能是:

type HookProc = delegate of int * nativeint * nativeint -> nativeint
代表的功能:

let HookCallback(nCode:int,wParam:System.IntPtr,lParam:System.IntPtr) = 
                    let t = (int)wParam
                    if  t = WM_KEYUP then 
                         let vkCode:int = Marshal.ReadInt32(lParam)
                         printfn "%A The Pressed key code is : "  vkCode
                    CallNextHookEx(_hookID, nCode, wParam, lParam)
我在创建委托时遇到的问题

let HookProcF = new HookProc(HookCallback)
获取此错误

Error   1   Type mismatch. Expecting a     int -> nativeint -> nativeint -> nativeint 
but given a     int * System.IntPtr * nativeint -> System.IntPtr     
The type 'int' does not match the type 'int * System.IntPtr * nativeint'
我问了一些相关的问题
答案在错误消息中-当它说
int->nativeint…

对于这样的函数,您需要使用咖喱格式

let HookCallback (nCode:int) (wParam:System.IntPtr) (lParam:System.IntPtr) = 

答案在错误消息中-当它说
int->nativeint…

对于这样的函数,您需要使用咖喱格式

let HookCallback (nCode:int) (wParam:System.IntPtr) (lParam:System.IntPtr) = 

答案在错误消息中-当它说
int->nativeint…

对于这样的函数,您需要使用咖喱格式

let HookCallback (nCode:int) (wParam:System.IntPtr) (lParam:System.IntPtr) = 

答案在错误消息中-当它说
int->nativeint…

对于这样的函数,您需要使用咖喱格式

let HookCallback (nCode:int) (wParam:System.IntPtr) (lParam:System.IntPtr) =