zoukankan      html  css  js  c++  java
  • Winform工程反编译后的工作

    Winform工程,反编译后,虽然能用,但不太好用。

    因为form并没有像原生的那样。

    所以,需要几个步聚:

    1。 用ResGen工具,把二进制资源文件还原为xml格式:

    ResGen fromXX.resource fromxx.resx

    然后引入工程中。

    可以,现在资源文件,还是散放在那里,没有与form在一块。

    2。把fromXX的代码,一分为二,分成fromxx.cs和fromxx.Designer.cs

    这个简单,只需要把formxx.cs做一个复制,然后把复制的这个改成fromxx.Designer.cs

    然后,有点难度的就来的。

    1) 修改vsproj文件,

        < Compile Include= "FormXX.cs ">
          < SubType> Form</ SubType>
        </ Compile>
        < Compile Include= "FormXX.Designer.cs ">
          < DependentUpon >FormXX.cs </DependentUpon >
        </ Compile>
        < EmbeddedResource Include= "SU.resx ">
          < DependentUpon >FormXX.cs </DependentUpon >
        </ EmbeddedResource>

    2) 两个文件的类前面都加上partial关键字
    3) designer.cs中,只留下定义和InitializeComponent
    4) 其它的在from中。

    3. 编译过。
    4。这里,我们还是不能使用窗体编辑器,还需要过几关:
    1) designer.cs把头部的所有的import都要去除,一个诀窍是一个一个去除,去除一个namespace,则所有的引用,都需要用全名称方式,如:
    Lable 要换成 System.Windows.Forms.Label
    2) 编译过,还是不行。窗体编辑器会告诉你一个奇怪的错误:指向这里。
      this.BackgroundImage = ((System.Drawing.Image)(manager.GetObject("$this.BackgroundImage")));

    然后,的倒。怎么也看不出这里有什么错啊?
    然后,我把manager这个变量,全部换成resources
    如:
                System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SU));

    然后,竟然通过了!!!

    至此,窗体编辑器可以对窗体进行所见即所得编辑了。
  • 相关阅读:
    线性同余方程模板( A+C*x=B(mod D) )
    线性同余方程组模板( x=r0(mod m0) )
    poj2891(线性同余方程组)
    BestCoder Round #63 (div.2)
    16.实现多个具有相同方法的接口和父类与实现接口有相同方法
    14.Java中的StringTokenizer类的使用方法
    13.Java为什么不支持多继承
    bootstrap使用基础
    Js 百分比进度条
    Js更改样式导致hover效果消失
  • 原文地址:https://www.cnblogs.com/wuchitao/p/6511792.html
Copyright © 2011-2022 走看看