Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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# 在visual studio中,如果没有对象浏览器,如何查看Dll类?_C#_Visual Studio 2010_Visual Studio 2012_Dll - Fatal编程技术网

C# 在visual studio中,如果没有对象浏览器,如何查看Dll类?

C# 在visual studio中,如果没有对象浏览器,如何查看Dll类?,c#,visual-studio-2010,visual-studio-2012,dll,C#,Visual Studio 2010,Visual Studio 2012,Dll,我有一个无效程序集,因此无法在visual studio引用中导入。然后我找到了解决方案,比如C#中的[DllImport(“ScanDll.dll”)]。我已经做到了 现在我想看看dll类 在visual studio中,如果没有对象浏览器,如何查看Dll类?如果是非托管Dll,获取可用方法信息的正常方法是通过Dll随附的头文件 如果没有任何头文件,可以使用来查看DLL导出了哪些函数。关于我对您的问题的评论 如果使用DllImport它必须是本机dll,而不是托管dll。唯一的 查看其中内容的

我有一个无效程序集,因此无法在visual studio引用中导入。然后我找到了解决方案,比如C#中的[DllImport(“ScanDll.dll”)]。我已经做到了

现在我想看看dll类


在visual studio中,如果没有对象浏览器,如何查看Dll类?

如果是非托管Dll,获取可用方法信息的正常方法是通过Dll随附的头文件


如果没有任何头文件,可以使用来查看DLL导出了哪些函数。

关于我对您的问题的评论

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

如果您确实有本机DLL的源代码,您可能希望尝试使用生成与DLL交互所需的C。请注意,这是不完美的,尽管如此

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


通过使用@Anders Abel建议的依赖项遍历器,您可以获得有关导出的类和函数的一些信息。然而,使用它来生成C#包装器的主要问题是,您看不到任何信息来区分作为指针或引用传递的参数,即使指针可能意味着数组。例如,在C#中,您需要知道这一点,以便可以应用正确的
ref
out
限定符。

如果使用
DllImport
它必须是本机dll,而不是托管的。查看其中内容的唯一方法是查看它所属的头文件。是否有可能在对象浏览器中看到此dll?@Sagotharan那么你就不走运了。没有可靠的方法从dll甚至从关联的库中获取此信息。即使依赖项遍历程序也不会向您显示类定义,只显示已损坏的函数名。