Winform 工程反编译后窗体如何显示

Winform反编译后,如果想要让它象正常的工程一样,可以在窗体编辑器中,编辑,需要做一些工作。


我用的vs 2008,也许新的visual  版本会好些。


1.  转换.resources 为 .resx

利用resgen工具。这个工具是vs自带的。

不需要找地方下载。

方法是,在启动菜单中,找到:

Visual Studio 2008 Command Prompt


然后进入.resources所在目录,比如叫xx.resources

resgen xx.resources xx.resx


2.转换之后,与窗体代码,xx.resx 放到一个目录。

这里,VS会很聪明地,显示出xx.cs下面,有一个resx 文件,然后,右键,把 .resx 加入到工程。

3. 双击打开,会看到一些错误:


这是因为System.ComponentModel这个库。

窗体设计器,不是一个单独的程序,它需要解析窗体中的代码来执行。我不清楚为什么微软要这么做,可能是阿三不懂得如何做编译器,总之是让人不解,

解决方法当然很简单:

注掉 这句  using System.ComponentModel; ,然后把所有的出错的地方,前面加上 System.ComponentModel


OK了吗?还没有,阿三还有更牛B的错误,

阿三的form designer只认误一个变量,叫resource

比方说吧,用Redflector反编译后,这个操作器的名字叫:manager

        private void InitializeComponent()
        {
            ComponentResourceManager manager = new ComponentResourceManager(typeof(ConfirmMsg));

一定要改成

       System.ComponentModel.ComponentResourceManager resources= new System.ComponentModel.ComponentResourceManager....

牛B吧?

我要吐了,也不清楚这些年微软的这些人都在干什么。

而且,我好象是去年发现这个问题的,我到现在也想不通。好象也没有人提到过这个,我自己也记不清我是怎么知道的这个事情。总之吐啊吐就习惯了。


-------------

另外,有时这样还不成,一般是System.Windows.Forms

库出了问题。

这时就如法炮制,把System.Windows.Forms也注掉。然后所有用到的地方,都加上这个空间。


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值