草庐IT

反编译器

全部标签

windows - Windows 10 上的 Visual Studio 2010 x64 编译器

我已经安装了VisualStudio2010Express,但我需要x64编译器工具集。我无法在我的Windows10机器上安装带有Windows7.1SDK的编译器工具集,它显示“未安装.NETFramework4”。如何获取VisualStudio2010的x64编译器? 最佳答案 对我来说,它通过以下步骤工作(旧的VisualStudio版本可以通过https://www.visualstudio.com/vs/older-downloads/下载(需要登录))安装MicrosoftVisualStudio2010Expres

windows - Fortran 代码 (.f95) 在 Windows g95 编译器中编译良好,但在 Ubuntu gfortran 中编译错误

我正在尝试编译一个.f95fortran脚本,以便它可以在Ubuntu上运行。该脚本可在此处获取->Linktozipfilecontaining.f95script当我切换到Windows并使用g95编译器编译时,它编译并运行良好。生成的.exe文件也可以通过wine在Ubuntu中正常运行。但是,如果我尝试编译生成Ubuntu文件,它无法正常工作。我没有收到编译错误,但如果我运行生成的文件,要么程序陷入无限循环,要么输出全错。我很难看出哪里出了问题,因为我没有写原始代码,对Fortran的理解也很不稳定,但这似乎与计算错误的数字有关,导致非常大/小/不适当负输出(抱歉这么含糊)。我

c# - 可靠地检测 C# 表达式树中编译器生成的类

我正在按照Linq-to-SQL的思路构建一个C#表达式到Javascript的转换器,但我遇到了编译器生成的表达式树的问题。我遇到的特殊问题是处理MemberExpression编译器生成的值,但没有CompilerGeneratedAttribute在它们的类型上指定。这是我一直在尝试的精简版:voidProcessMemberExpression(MemberExpressionmemberX){varexpression=memberX.Expression;varexpressionType=expression.Type;varcustomAttributes=expres

c# - 取决于编译器版本的条件编译

我正在寻找一种方法来实现这样的东西:#ifCSHARP_COMPILER_IS_FOR_CSHARP_6_OR_HIGHERfoo?.Bar();#elseif(foo!=null){foo.Bar();}#endif当然,我可以自己定义一个条件编译符号,但它不合适。有没有内置常量?我发现的问题相当陈旧。也许,东西都变好了? 最佳答案 没有,据我所知他们没有改变任何东西:-)您也许可以在csproj中做一些魔术来定义常量……但它很复杂……没有直接指定CSC版本的属性...有一个属性($(LangVersion))指定所需语言标准的版

c# - C# 语言编译器是否自行执行任何实际优化?

根据随机的Internet评论,我一直认为C#编译器对IL(删除始终为真的if语句、简单的内联等)进行了简单的优化,然后是JIT执行真正的、复杂的优化。举个例子,在thedocumentationforthe/optimizecompilerflag上,它说The/optimizeoptionenablesordisablesoptimizationsperformedbythecompilertomakeyouroutputfilesmaller,faster,andmoreefficient.这意味着语言编译器至少应用了一些优化。然而,玩弄TryRoslyn,这似乎不是真的。看起来

c# - 空传播运算符、out 参数和错误的编译器错误?

假设我有一个类,其属性类型为Dictionary,那可能是空的。这会编译但调用TryGetValue()可以抛出NullRef运行时异常:MyClassc=...;stringval;if(c.PossiblyNullDictionary.TryGetValue("someKey",outval)){Console.WriteLine(val);}所以我添加了一个null传播运算符来防止null,但这不会编译:MyClassc=...;stringval;if(c.PossiblyNullDictionary?.TryGetValue("someKey",outval)??false)

c# - 如果声明是接口(interface),编译器无法识别泛型中的属性

查看以下演示我的VisualStudio2017编译器问题的内容publicinterfaceIFoo{stringKey{get;set;}}publicclassFoo:IFoo{publicstringKey{get;set;}}classProgram{staticvoidMain(string[]args){PrintFoo(newFoo(){Key="HelloWorld"});Console.ReadLine();}privatestaticvoidPrintFoo(Tfoo)whereT:IFoo{//setbreakpointhereandtrytolookatfoo

c# - lambda 表达式中的事件 - C# 编译器错误?

我正在考虑使用lamba表达式来允许以强类型方式连接事件,但中间有一个监听器,例如给定以下类(class)classProducer{publiceventEventHandlerMyEvent;}classConsumer{publicvoidMyHandler(objectsender,EventArgse){/*...*/}}classListener{publicstaticvoidWireUp(Expression>expr){/*...*/}}事件将被连接为:Listener.WireUp((p,c)=>p.MyEvent+=c.MyHandler);但是这会导致编译器错误

C# 编译器在没有错误消息的情况下崩溃

varxrr=__arglist(Convert.ToUInt32(1),Convert.ToUInt32(2),Convert.ToUInt32(3));上面的代码会使编译器在构建时崩溃。我希望编译器以有意义的错误消息停止,而不是尝试编译代码。它可能是编译器中的错误吗?如果没有,我该如何解决这个错误? 最佳答案 这不是编译器中的错误;编译器给出正确的错误信息。相反,这是VisualStudio编辑器语言服务中的错误,会导致VisualStudio崩溃。但是,你的代码无论如何都是非法的;__arglist(...)表达式只能用于调用

c# - 无法定义使用动态的类或成员,因为编译器需要类型

我在Asp.Net3.5应用程序中使用FacebookSDKC#库。当我试图编译下面的代码时,给我错误。据我所知,动态类型在4.0框架中使用。那么无论如何要重写它以使其工作?我引用了System.Core3.5,但它仍然没有编译protectedvoidPage_Load(objectsender,EventArgse){if(Request.Params.AllKeys.Contains("signed_request")){varresult=FacebookSignedRequest.Parse(FacebookContext.Current.AppSecret,Request.