如何在Visual Studio中看到没有对象浏览器的Dll类?

时间:2014-01-10 08:12:19

标签: c# visual-studio-2010 visual-studio-2012 dll

我有一个无效的程序集,所以我无法导入Visual Studio参考。然后我找到了解决方案,比如C#中的[DllImport(“ScanDll.dll”)]。我做到了。

现在我想看看dll类。

如何在visual studio中看到没有对象浏览器的Dll类?

2 个答案:

答案 0 :(得分:1)

如果它是非托管DLL,获取有关可用方法的信息的常规方法是通过DLL提供的头文件。

如果您没有任何头文件,可以使用Dependency Walker (depends.exe)查看DLL导出的函数。

答案 1 :(得分:1)

继续我对你的问题的评论,

  

如果您使用 DllImport ,则必须是本机dll,而不是托管。唯一的   查看其中的内容的方法是查看属于的头文件   用它

如果你拥有本机DLL的源代码,你可能想尝试使用PInvoke Interop Assistant来生成与DLL交互所必需的C#。请注意,这是不完美的,但YMMV。

如果您有源代码,则只能“浏览”DLL类。如果您只有DLL,则无法执行此操作。

通过使用@Anders Abel建议的Dependency Walker,您可以获得有关导出的类和函数的一些信息。但是,使用它来生成C#包装器的主要问题是,没有信息可以看到区分作为指针或引用传递的参数,即使这样,指针也可能暗示数组。在C#中,您需要知道这一点,以便您可以应用正确的refout限定符,例如。