Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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
如果我';我用C#?_C#_Interop_Unmanaged - Fatal编程技术网

如果我';我用C#?

如果我';我用C#?,c#,interop,unmanaged,C#,Interop,Unmanaged,我正在编写一些代码,使用一些非托管调用来调用user32函数,比如SetWindowsHookEx等 这需要我使用很多常数,我不确定它们的值是多少。例如,如果我想将钩子设置为低级鼠标钩子,我需要知道WM_mouse_LL=14 我在哪里可以找到这些 我需要知道WM_MOUSEMOVE、WM_MOUSEDOWN和更多是什么。当我处理互操作代码时,最简单的方法是什么?我是否可以将它们导入C#以便定义它们

我正在编写一些代码,使用一些非托管调用来调用user32函数,比如SetWindowsHookEx等

这需要我使用很多常数,我不确定它们的值是多少。例如,如果我想将钩子设置为低级鼠标钩子,我需要知道WM_mouse_LL=14

我在哪里可以找到这些


我需要知道WM_MOUSEMOVE、WM_MOUSEDOWN和更多是什么。当我处理互操作代码时,最简单的方法是什么?我是否可以将它们导入C#以便定义它们另一种即时发现几乎任何东西的方法是使用。很多时候,你会在酒头文件中找到答案。

有时候MSDN页面会列出它们,但是我发现最好的方法是打开一个C++程序,然后右键单击常量,并说“转到定义”。
另一种即时发现几乎任何东西的方法是使用。很多时候,你会在WINE头文件中找到答案。

你知道吗?

你知道吗?

它在你的机器上。如果您有VS2008,请打开c:\program files\microsoft skds\windows\v6.0a\winuser.h并搜索消息标识符。不,您不能在C程序中使用此文件,它是用C编写的


有一个工具可以将这些SDK头文件翻译成C#,下载。单击“SigImp搜索”选项卡并键入要查找的标识符。单击Generate创建C#声明。消息标识符没有问题,但API函数会变得难看。声明是自动翻译的,非常嘈杂,并不总是最优的。将生成的定义与pinvoke.net上提供的定义进行双重检查,该定义位于您的计算机上。如果您有VS2008,请打开c:\program files\microsoft skds\windows\v6.0a\winuser.h并搜索消息标识符。不,您不能在C程序中使用此文件,它是用C编写的

有一个工具可以将这些SDK头文件翻译成C#,下载。单击“SigImp搜索”选项卡并键入要查找的标识符。单击Generate创建C#声明。消息标识符没有问题,但API函数会变得难看。声明是自动翻译的,非常嘈杂,并不总是最优的。使用pinvoke.net上提供的内容仔细检查生成的定义