反编译DLL文件错误,提示“无法显示调用运算符或访问器”

问题描述

反编译了一个第三方DLL文件。编译后出现很多错误提示:“无法显示调用运算符或访问器”。画红框位置都是显示该提示。如下图:以下是源码:usingMicrosoft.Office.Interop.Excel;usingSystem;usingSystem.Data;usingSystem.Runtime.InteropServices;usingSystem.Web;namespaceCRM.Utility.Tif{publicclassExportExcel{publicstringexport(DataSetds,stringpath){stringstr="";Applicationo=newApplicationClass();try{o.set_DisplayAlerts(false);o.set_Visible(false);Workbooksworkbooks=o.get_Workbooks();workbooks.Add(Type.Missing);Workbookworkbook=o.get_ActiveWorkbook();Sheetssheets=workbook.get_Worksheets();sheets.Add(Type.Missing,Type.Missing,Type.Missing,Type.Missing);Worksheetworksheet=(Worksheet)sheets.Default(1);intcount=ds.Tables[0].Columns.Count;intnum2=0;while(num2<count){worksheet.get_Cells().set__Default(1,num2+1,ds.Tables[0].Columns[num2].Caption.ToString());num2++;}for(inti=0;i<ds.Tables[0].Rows.Count;i++){for(num2=0;num2<count;num2++){worksheet.get_Cells().set__Default(i+2,num2+1,ds.Tables[0].Rows[i][num2].ToString());}}str=HttpContext.Current.Server.MapPath(path)+@"MyExcel"+HttpContext.Current.Session["UserId"].ToString()+".xlsx";o.set_AlertBeforeOverwriting(false);worksheet.SaveAs(str,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);workbook.Close(null,null,null);Marshal.ReleaseComObject(worksheet);Marshal.ReleaseComObject(sheets);Marshal.ReleaseComObject(workbook);Marshal.ReleaseComObject(workbooks);Marshal.ReleaseComObject(o);workbooks=null;workbook=null;sheets=null;worksheet=null;GC.Collect();}finally{o=null;}returnstr;}}}

解决方案

解决方案二:
百度了一下,说是反编译的软件自动在前面加上了set或get;但是去掉后,又出现了下面的错误提示:
解决方案三:
看起来,还不如读懂代码,自己重写呢。
解决方案四:
Workbooks是属性,不是方法。因此要这样Workbookswordbooks=o.Workbooks;其他的应该一样。
解决方案五:
反编译程序没有正确处理索引器和属性。“百度了一下,说是反编译的软件自动在前面加上了set或get”错了,不是反编译软件加上的,而是C#编译器在编译的时候实际上把属性编译成get_和set_开头的方法。
解决方案六:
自己顶一下!!急!
解决方案七:
o.DisplayAlerts=false;o.Visible=false;Workbooksworkbooks=o.Workbooks;workbooks.Add(Type.Missing);Workbookworkbook=o.ActiveWorkbook;Sheetssheets=workbook.Worksheets;这样你试试,应该就能好使了
解决方案八:
1.属性其实是一类特殊方法;2.编译时,编译器会在加上get,set前缀然后按照方法的方式来访问;3.获取属性和给属性赋值那里改下,按照正常的写法就行了。
解决方案九:
请问楼主是怎么解决的

时间: 2024-10-27 23:40:50

反编译DLL文件错误,提示“无法显示调用运算符或访问器”的相关文章

软件-关于反编译DLL文件的问题

问题描述 关于反编译DLL文件的问题 我想问下,现在有写好的DLL反编译软件嘛?我有个DLL文件里面设置了个生效日期,我能看到这个生效日期到什么时候甚至能修改嘛? 解决方案 有反编译的DLL文件,你去网上找找

请教,如何反编译dll文件?谢谢。

问题描述 我在玩一个暗黑2,国外玩家开发了一个叫redvex的平台(完全开源免费的)然后国内有人在这个平台的基础上开发了一个插件,作用是使redvex能在国内的私服上用(收费500元一个版本)这个插脚主要是一个dll文件,我想看看这个插件的实现原理.请问有什么工具可以反编译dll. 解决方案 解决方案二:reflector解决方案三:reflector解决方案四:reflector解决方案五:..............帮顶解决方案六:給我看看,,,解决方案七:DLL是.Net的吗?......

ILSpy反编译DLL文件后改动其中一小部分,怎么再将其编译到该DLL中

问题描述 各位大神们,我用ILSpy反编译.net程序里的Dll文件后,将其中一个文件保存为.cs文件并修改后,怎么将其再编译到该Dll文件? 解决方案 解决方案二:有没有人能给解答一下啊,小女子感激不尽!!!解决方案三:你先学会不用反编译怎么生成dll文件,然后把你反编译并修改过的代码粘进去生成就行了解决方案四:如果改动很小,可以用一些支持.net元数据分析的工具比如CFFExplorer找到方法的位置,用16进制编辑工具修改方法体.也有直接支持分析和修改的比如SAE,还有作为插件的Refle

Invalid number of data directories in NT header.反编译DLL的时候显示这个.怎么解决?

问题描述 用的是RedGate's.NETreflectorInvalidnumberofdatadirectoriesinNTheader.反编译DLL的时候显示这个.怎么解决?请大牛们帮忙解答一下! 解决方案 解决方案二:混淆了流程解决方案三:引用1楼crackdung的回复: 混淆了流程 该如何解决!?解决方案四:手工修正,呵呵解决方案五:该如何解决!?

系统丢失gdiplus.dll文件错误解决方法

  系统丢失gdiplus.dll文件错误解决方法,详细错误如图: 步骤 百度gdiplus.dll文件,找一个地方下载gdiplus.dll文件,下载的时候注意必须符合自己的系统(win7或者XP) 下载后,解压,复制里边的gdiplus.dll文件到系统目录下,如下图,是WIN7系统的存放位置,其他系统放在相应位置即可(系统目录一般为:C:WINNTSystem32 64位系统为C:WindowsSysWOW64) 最后,点击开始菜单-->运行-->输入[regsvr32 gdiplus.

解决电脑安装软件时出现不能够打开文件错误提示的方法

  1.根据提示中的目录找到相应的文件,右击该文件,可以看到"管理员取得所有权"选项,点击该选项获取管理员权限即可; 2.如果安装文件时一次提示多个dll文件没有权限,可以批量获取权限,选择多个需要获取权限的文件,然后右击选择"管理员取得所有权"; 3.要注意一次最多只能选择15个文件,如果超过15个,在右键菜单中是没有"管理员取得所有权"选项的. 按照上述的方法进行设置后就可以解决电脑安装软件时出现不能够打开文件错误提示的问题.

Win7笔记本系统如何添加“注册dll”和“反注册dll”文件

  具体步骤如下: 1.新建一个记事本,复制以下代码内容到记事本中; Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOTdllfileshell] [HKEY_CLASSES_ROOTdllfileshellregister] @="注册DLL文件" [HKEY_CLASSES_ROOTdllfileshellregistercommand] @="regsvr32 %1" [HKEY_CLASSES_RO

Android中如何反编译apk文件

相信大家在安装使用了一个apk后,看到一些好的效果或实现,一般会很想知道这个是如何实现的.还好,android选的是java开发语言,所以经过一些小步骤,而作者又没有用混淆的话,差不多可以返原70 ~ 90 的java实现,下面我就来说下Android apk 的反编译步骤: 解压缩apk包:将apk文件的后缀改名为.zip,然后对zip文件进行解压. 反编译dex文件:解压apk文件后,你会发现res目录的图片没有加密,但java源码编译成了一个classes.dex文件,无法用普通的反编译c

jd gui-jd-gui反编译class文件出现$问题

问题描述 jd-gui反编译class文件出现$问题 我反编译一个jar包中的class文件时,编译后的Java文件中出现了一些$getCallSite()方法的调用,但是却没有getCallSite()方法,这是什么原因?谢谢啦!