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));

然后,竟然通过了!!!

至此,窗体编辑器可以对窗体进行所见即所得编辑了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值