学生想搭建网站怎么做网站中文商标域名注册

张小明 2025/12/27 4:10:23
学生想搭建网站怎么做,网站中文商标域名注册,app定制开发 价格,做现金贷网站的公司C#内存加载dll和EXE是不是差不多#xff0c;主要是EXE有入口点#xff1f;是的#xff01;在 C# 中#xff0c;内存加载 DLL 和 EXE#xff08;仅限 .NET 托管程序集#xff09;的核心逻辑几乎完全一致#xff0c;唯一的关键差异确实集中在「EXE 有入口点#xff08;En…C#内存加载dll和EXE是不是差不多主要是EXE有入口点是的在 C# 中内存加载 DLL 和 EXE仅限 .NET 托管程序集的核心逻辑几乎完全一致唯一的关键差异确实集中在「EXE 有入口点EntryPoint」但本质上二者都是 CLR 可加载的托管程序集加载和反射调用的底层规则完全相同。下面我们从「核心共性」「关键差异」「代码示例」三个维度讲清楚帮你彻底理解一、核心共性加载 DLL/EXE 完全一致无论加载的是 .NET DLL 还是 EXE只要是托管程序集内存加载的底层逻辑、反射调用方法的规则完全相同加载方式一致都通过Assembly.Load(byte[])从内存字节数组加载而非LoadFile/LoadFrom读文件避免磁盘依赖反射调用一致加载后都通过Type.GetMethod/MethodInfo.Invoke调用方法无论是否静态、有无参数 / 返回值依赖处理一致若程序集依赖其他 DLL/EXE都需通过AppDomain.CurrentDomain.AssemblyResolve事件处理内存加载依赖类型访问一致都能访问程序集中的公开类、方法、属性只要权限允许。简单说CLR 并不区分「DLL」和「EXE」扩展名只认「是否是符合 .NET 规范的托管程序集」—— EXE 只是「带入口点的 DLL」DLL 是「无入口点的 EXE」。二、关键差异仅 2 点核心是入口点维度.NET DLL.NET EXE入口点EntryPoint无默认入口点除非手动定义必有入口点Main方法可通过Assembly.EntryPoint获取编译 / 运行特性无法直接独立运行需宿主程序可直接双击运行CLR 自动调用入口点反射调用重点找「自定义业务方法」如DoWork()可调用「入口点Main」或「自定义业务方法」补充EXE 的入口点也可以是无参 / 有参、有返回值 / 无返回值如int Main(string[] args)和 DLL 自定义方法的调用规则完全一致。三、C# 代码示例对比 DLL/EXE 内存加载1. 通用内存加载方法DLL/EXE 共用csharpusing System; using System.Reflection; using System.IO; public static class AssemblyLoader { // 核心从字节数组加载托管程序集DLL/EXE 通用 public static Assembly LoadFromMemory(byte[] assemblyBytes) { // 内存加载不落地磁盘区别于 LoadFile/LoadFrom return Assembly.Load(assemblyBytes); } // 辅助从文件读取字节实际可从网络/加密存储获取 public static byte[] GetAssemblyBytes(string filePath) { return File.ReadAllBytes(filePath); } }2. 内存加载 DLL调用自定义方法假设 DLL 中有如下代码// 被加载的 DLL 代码 namespace MyDll { public class Calculator { // 自定义有返回值方法 public static int Add(int a, int b) { return a b; } } }内存加载并调用csharp运行public static void CallDllFromMemory() { try { // 1. 读取 DLL 字节内存加载核心 byte[] dllBytes AssemblyLoader.GetAssemblyBytes(C:\MyDll.dll); Assembly assembly AssemblyLoader.LoadFromMemory(dllBytes); // 2. 找 DLL 中的类型和方法重点自定义业务方法 Type calcType assembly.GetType(MyDll.Calculator); if (calcType null) throw new Exception(未找到 Calculator 类型); MethodInfo addMethod calcType.GetMethod(Add, BindingFlags.Public | BindingFlags.Static, null, new[] { typeof(int), typeof(int) }, null); // 3. 调用方法并获取返回值 object result addMethod.Invoke(null, new object[] { 100, 200 }); Console.WriteLine($DLL 方法返回值{result}); // 输出 300 } catch (Exception ex) { Console.WriteLine(DLL 调用失败 ex); } }3. 内存加载 EXE调用入口点 自定义方法假设 EXE 中有如下代码// 被加载的 EXE 代码 namespace MyExe { class Program { // EXE 入口点有参数、有返回值 static int Main(string[] args) { return args?.Length ?? -1; // 返回参数个数无参数返回 -1 } } // EXE 中的自定义公开方法和 DLL 一样可调用 public class ExeHelper { public static string GetInfo() { return EXE 自定义方法 DateTime.Now; } } }内存加载并调用public static void CallExeFromMemory() { try { // 1. 读取 EXE 字节和 DLL 加载逻辑完全一致 byte[] exeBytes AssemblyLoader.GetAssemblyBytes(C:\MyExe.exe); Assembly assembly AssemblyLoader.LoadFromMemory(exeBytes); // 场景1调用 EXE 入口点Main MethodInfo entryMethod assembly.EntryPoint; // 核心获取 EXE 入口点 if (entryMethod null) throw new Exception(未找到 EXE 入口点); // 调用入口点并获取返回值和 DLL 方法调用规则一致 object entryResult entryMethod.Invoke(null, new object[] { new string[] { param1, param2 } }); Console.WriteLine($EXE 入口点返回值{entryResult}); // 输出 2 // 场景2调用 EXE 自定义方法和 DLL 完全一致 Type helperType assembly.GetType(MyExe.ExeHelper); MethodInfo infoMethod helperType.GetMethod(GetInfo); object infoResult infoMethod.Invoke(null, null); Console.WriteLine(infoResult); // 输出 EXE 自定义方法2025-xx-xx... } catch (Exception ex) { Console.WriteLine(EXE 调用失败 ex); } }四、关键总结核心结论C# 内存加载托管 DLL/EXE 几乎无差异唯一区别是 EXE 多了「入口点Main」但调用入口点的逻辑和调用 DLL 自定义方法完全一致本质逻辑CLR 加载的是「托管程序集」扩展名DLL/EXE仅影响「是否可独立运行」不影响内存加载和反射调用注意事项仅适用于 .NET 托管程序集非托管 DLL/EXE 需用LoadLibrary/P/InvokeEXE 调用入口点时需匹配Main的参数 / 返回值类型如string[] args、int返回值依赖处理若 EXE/DLL 依赖其他程序集需通过AssemblyResolve事件内存加载依赖项。简单记EXE DLL 入口点内存加载和反射调用的核心逻辑完全复用。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

南京市住房和城乡建设网站聊城推广网站

Windows系统维护、备份与安装全攻略 在使用Windows系统的过程中,我们难免会遇到各种各样的问题,如硬件或软件故障、系统不稳定、数据丢失等。本文将为大家详细介绍如何解决这些问题,以及如何进行系统维护、备份和安装。 一、报告和解决问题 当遇到硬件或软件问题时,比如…

张小明 2025/12/26 5:44:11 网站建设

做蛋糕哪个教程网站好404过多会不会影响网站排名

并行端口打印机驱动案例分析 1. 引言 在并行端口打印机驱动的开发中,有多个关键函数协同工作,以实现打印机设备的识别、检测、连接、数据传输等功能。下面将按照函数执行的大致顺序,对这些函数进行详细分析。 2. lpt_identify 函数 功能 :该函数是 lpt(4) 的 device_…

张小明 2025/12/26 5:44:16 网站建设

保定网站建设多少钱哪家好洛阳住房与城乡建设厅网站

从零开始搭建Proteus仿真环境:安装避坑与驱动兼容性实战指南 你是不是也曾兴冲冲下载了Proteus,结果双击安装包就弹出一堆错误?或者好不容易装上了,打开却提示“ No license found ”,再一运行仿真直接卡死黑屏&…

张小明 2025/12/26 5:44:16 网站建设

网站建设的上市公司行业门户网站模板

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿 paperzz - 开题报告https://www.paperzz.cc/proposal 开学刚满两个月,研一学生小 A 已经在开题报告上卡了三周:选题从 “短视频影响青少年” 改到 “算法推荐与信息茧房”&#xf…

张小明 2025/12/26 5:44:18 网站建设

国外ui设计网站美橙互联 网站备案拍照

创建程序文档:man 页面与 SGML 文档的实践指南 在软件开发过程中,为程序创建清晰、准确的文档是至关重要的。它不仅有助于其他开发者理解和使用你的程序,还能在后续的维护和扩展中提供重要的参考。本文将介绍如何使用 groff 创建 man 页面,以及如何利用功能更强大、更灵活的…

张小明 2025/12/26 5:44:17 网站建设

黄页88网站什么是网站维护费

第一章:Open-AutoGLM开发者红利期已至 随着大模型生态的快速演进,Open-AutoGLM作为开源自动化语言生成框架,正迎来前所未有的开发者红利期。其开放的架构设计、模块化任务处理能力以及对多场景推理链的原生支持,使得开发者能够以极…

张小明 2025/12/26 5:44:15 网站建设