欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

将DLL放入到资源中,运行时自动加载的小例子

程序员文章站 2023-12-22 10:19:34
今天在看到 一个小软件,考勤用的 attendancesheet_v_1_2,只有一个exe文件,绿色的随便考到哪里都可以运行。 顺手反编译后发现,他将需要的dll也放入...

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

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

将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 考勤表生成工具());
    }
}

上一篇:

下一篇: