zoukankan      html  css  js  c++  java
  • 将DLL放入到资源中,运行时自动加载

      今天在看到 一个小软件,考勤用的 AttendanceSheet_V_1_2,只有一个EXE文件,绿色的随便考到哪里都可以运行。

    顺手反编译后发现,他将需要的DLL也放入到资源文件了,在启动的时候自动加载:

    代码如下:

    internal static class Program
    {
        // Methods
        [STAThread]
        private static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            AppDomain.CurrentDomain.AssemblyResolve += delegate (object sender, ResolveEventArgs senderArgs) {
                Assembly executingAssembly = Assembly.GetExecutingAssembly();
                string name = new AssemblyName(executingAssembly.FullName).Name;
                string str2 = new AssemblyName(senderArgs.Name).Name;
                string str3 = name + "." + str2 + ".dll";
                using (Stream stream = executingAssembly.GetManifestResourceStream(str3))
                {
                    byte[] buffer = new byte[stream.Length];
                    stream.Read(buffer, 0, buffer.Length);
                    return Assembly.Load(buffer);
                }
            };
            Application.Run(new 考勤表生成工具());
        }
    }
    
     
    Collapse Methods
     

    这里收藏一下。回头可能用得到

  • 相关阅读:
    字符串序列处理
    51nod1065 最小正子段和
    51nod1043 幸运号码
    51nod1035 最长的循环节
    51nod 1021 石子归并
    POJ 2387 Til the Cows Come Home
    第一次博客作业
    Python命令行参数以及文件读入写出
    团队介绍及选题报告
    结对编程作业
  • 原文地址:https://www.cnblogs.com/abin30/p/3368537.html
Copyright © 2011-2022 走看看