如何在非托管DLL中发现可用的方法

时间:2011-08-25 00:08:35

标签: windows dllimport

执行这样的dll导入时:

[DllImport("user32.dll")]
    static extern bool SwapMouseButton(bool fSwap);

    private void button1_Click(object sender, EventArgs e)
    {
        SwapMouseButton(false);
    }

如何知道在user32.dll中有一个名为SwapMouseButton的方法,它接受一个bool参数并返回一个bool值?

显然没有智能感知来拯救这一天。那么是否有一个网站列出了这一切,或者我可以输入user32.dll的程序将为我发现它?

2 个答案:

答案 0 :(得分:2)

`User32.dll'是Windows API本身的一部分,API记录在MSDN。找到目标的典型方法是决定你要做什么,然后搜索该主题。

无法找到非托管DLL函数的参数。您可以使用depends.exe(VS的一部分)或DependencyWalker找到函数的名称(通常)。但是,这不会给你参数;那些必须从图书馆的文件中获得。

答案 1 :(得分:1)

您可以使用Visual Studio附带的depends.exe。您可以加载一个dll,它将显示内部的所有函数以及依赖项。

您也可以尝试Dumpbin:http://msdn.microsoft.com/en-us/library/c1h23y6c