-
2021-09-29 10:20:49
背景
我有一个主程序WindowsRegister.exe
还有一个文件Windowns.bin
运行时,EXE需要读取bin文件
所以,我想把它打包成一个EXE文件。
说明:我要的不是做成安装包,而是制成绿色软件,就类似于
文件捆绑,是用 C# 开发方法一:资源文件导入
用resource将其以二进制形式导入。把bin文件当类似图片一样的普通资源文件。据说这个方法是可以的,但是没有去尝试。
方法二:多写一个数组生成工具
这个就简单也容易把握。
在工程里写多一个软件,功能是把bin文件转化为具大的数组。数组保存在 *.cs 文件里。这个 *.cs 文件就可以作为主工程的源代码文件,就可以实现打包bin文件以数组里,而且,打包的加密方式,可以自己随意掌握,想怎么加密就怎么加密。
这次使用方法二,多写一个数组生成工具。
易错点: VS2019有两个版本, 一个是blend for visual studio2019,另一个是visual studio2019,而blend版是不能创建控制台程序的。
更多相关内容 -
C#读取bin文件
2021-01-10 21:00:15版本:VS2010 C#读取bin文件,并显示在TextBox控件内 版本:VS2010 C#读取bin文件,并显示在TextBox控件内 -
C# BIN文件加载
2020-11-26 08:57:29C#学习,在制作固件升级的上位机时候常用到BIN文件和HEX文件加载,BIN文件相对特殊,是纯粹的二进制数据域,没有多余的协议格式,所以会用到特殊的加载方式,两种方法实现BIN文件加载,速度上的却别让你领悟技巧的... -
C#读取BIN文件内容
2018-08-23 11:54:14C#读取BIN文件内容,获取其中数据并显示。用于对BIN文件的操作。 -
C#窗体应用HEX文件转BIN文件
2021-02-07 20:18:23用VS2015编写,可以将HEX文件转成BIN文件,并对地址空缺部分用0xff补齐。 -
c#读bin文件
2016-04-15 09:27:23c#读取bin文件的小助手,代码简单。本来没啥必要,csdn下载一个别人的代码,感觉代码很不精炼,修改后重新上传。注:我只跟下载的工具做了数据对比,是一样的,手头没别的工具,没法验证数据是否正确 -
C# bin eagle tcl dll
2015-11-10 05:40:35C# bin eagle tcl dll -
Bin文件转Hex文件工具.7z-BinToHex [NewBit]
2020-03-20 16:29:031. 可以将镜像文件(.bin)转换为inter-extended 文档(.hex),是单片机开发中的常用格式。 2. 没有64kb的限制 3. 可视界面,支持输入文件路径,输出文件路径及名称设定 4. 绿色软件,直接运行 软件运行需求: 1.... -
C#编写的hex转bin工程
2018-11-04 15:15:06这是一个2013版visual studio 编写的hex文件转bin文件的工程,调试通过,而且文件转换需要输入密码才能转换,源码奉上,需要的可以将密码部分去掉 -
C# 读取 bin 文件
2014-06-26 15:35:05版本:VS2010 C#读取bin文件,并显示在TextBox控件内 -
C#实现把图片转换成二进制以及把二进制转换成图片的方法示例
2020-08-30 06:50:08主要介绍了C#实现把图片转换成二进制以及把二进制转换成图片的方法,结合具体实例形式分析了基于C#的图片与二进制相互转换以及图片保存到数据库的相关操作技巧,需要的朋友可以参考下 -
C#【文件操作篇】S19文件转bin文件
2022-03-21 18:03:56源码-C#实现S19文件转bin文件 如果对于S19文件格式不懂,可见: S19文件格式详解(1):https://star-302.blog.csdn.net/article/details/119564818 S19文件格式详解(2):... -
C#串口下载烧写bin文件
2017-04-06 12:38:04C#串口下载烧写bin文件 -
C# Form窗体打开BIN文件并读取二进制数据
2021-10-20 14:44:36C# Form窗体打开BIN文件并读取二进制数据 目标: 使用C# Form窗体打开BIN文件并读取二进制数据 使用的关键类: C#的作为高级语言文件批量读取一般都是使用文件流处理,这离不开C#的System.IO 类的强大功能。 使...C# Form窗体打开BIN文件并读取二进制数据
目标:
使用C# Form窗体打开BIN文件并读取二进制数据
使用的关键类:
C#的作为高级语言文件批量读取一般都是使用文件流处理,这离不开C#的System.IO 类的强大功能。
使实现过程:
这里简述一下实现过程:
1、使用对话框类OpenFileDialog 来打开BIN文件类型的文件获取文件名路径
2、使用FileStream类, 用他来打开文件获取文件长度大小
3、使用读二进制类BinaryReader,按照字节来获取内容
4、最后连接成字符串返回
代码实例:
/// <summary> /// 打开BIN文件得到路径,读取其中的二进制内容 /// </summary> /// <returns>返回二进制数字符串</returns> /// public static string OpenBinFile() { string bin_str =""; byte[] binchar = new byte[] { }; int file_len; //打开文件类 OpenFileDialog dialog = new OpenFileDialog(); //使用当前目录作为初始目录 dialog.InitialDirectory = System.AppDomain.CurrentDomain.BaseDirectory; //文件过滤,仅打开bin dialog.Filter = "bin文件(*.bin)|*.bin"; //关闭选择多文件 dialog.Multiselect = false; if (dialog.ShowDialog() == DialogResult.OK) { //文件流类//用于文件的读写与关闭//来自于System.IO FileStream fileStream = new FileStream(dialog.FileName, FileMode.Open); //读二进制文件类 BinaryReader br = new BinaryReader(fileStream,Encoding.UTF8); //获取bin文件长度 file_len = (int)fileStream.Length; //得到所有字节 binchar = br.ReadBytes(file_len); //累加每字节数组转字符串 foreach (byte j in binchar) { bin_str += "0x"+ j.ToString("X2")+" "; } //关闭 BinaryReader 对象和基础流 br.Close(); } //返回字符串 return bin_str; }
小结
1、BinaryReader类 和BinaryWriter 类一个读一个写,内容和方法都是类似,可以相互参考。
2 、二进制类的读写中有很多种方法函数,针对不同的数据类型,也可以穿插使用。需要强调的是类型切记不能使用错误。
3、FileStream 类的实例化时候,有3个参数,后面两个可以省略,其参数将作为默认参数处理。 -
C#窗体应用(一)Bin文件读取
2021-02-07 14:50:24C#窗体应用(一)bin文件读取应用界面原代码效果展示程序下载地址 应用界面 界面如下图,添加一个button、两个textbox、和一个OpenFileDialog控件。 原代码 using System; using System.Collections.Generic; using...应用界面
界面如下图,添加一个button、两个textbox、和一个OpenFileDialog控件。
原代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace open_bin { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { openFileDialog1.Filter = "*.bin|*.BIN"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { textBox2.Text = openFileDialog1.FileName; int file_len;//bin文件长度 int addr = 0;//地址从0x00000000开始 int count = 0;//换行显示计数 byte[] binchar = new byte[] { }; FileStream Myfile = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read); BinaryReader binreader = new BinaryReader(Myfile); file_len = (int)Myfile.Length;//获取bin文件长度 StringBuilder str = new StringBuilder(); binchar = binreader.ReadBytes(file_len); foreach (byte j in binchar) { if (count % 16 == 0) { count = 0; if (addr > 0) str.Append("\r\n"); str.Append(addr.ToString("x8") + " "); addr++; } str.Append(j.ToString("X2") + " "); if (count == 8) str.Append(" "); count++; } textBox1.Text = str.ToString(); binreader.Close(); } } } }
效果展示
程序下载地址
-
将BIN文件数据转换成TXT文件数据
2019-02-18 19:03:54将BIN文件数据转换成TXT文件数据,方便进一步的操作。 -
BIN文件转为TXT文件工具
2018-10-08 18:05:45因为前几天用到BIN转为TXT,苦于没有合适工具,自己写了一个,送给有用的朋友吧 -
C# 解析雷达bin文件数据
2021-03-03 09:11:04C# 解析雷达bin文件数据 FileStream fs = null; BinaryReader reader = null; byte[] data; var encoding = Encoding.Default; int[] sd; fs = new FileStream(binFile, FileMode.Open, FileAccess.Read); ...C# 解析雷达bin文件数据
FileStream fs = null; BinaryReader reader = null; byte[] data; var encoding = Encoding.Default; int[] sd; fs = new FileStream(binFile, FileMode.Open, FileAccess.Read); reader = new BinaryReader(fs); data = reader.ReadBytes((int)fs.Length); reader.Close(); fs.Close(); //string类型 encoding.GetString(data, 0, 12).TrimEnd('\0'); //uint 类型 (uint)(data[66] | data[67] << 8); //int类型 (int)(data[84] | data[85] << 8 | data[86] << 16 | data[87] << 24); //float类型 BitConverter.ToSingle(NewByte(data, 88, 4), 0); //数据段解析 sd[i] = (((int)data[i +1024]) - 66) / 2;
-
快速删除C# bin、obj、.vs文件夹的脚本
2019-10-27 20:29:09C#程序总会生成bin、obj、.vs文件夹,为了减小源码的大小,就有必要将这两个文件夹删除,于是想到编写脚本来自动删除。 文章目录Python3 代码Bat脚本代码 Python3 代码 import os import shutil tempDir=['obj','... -
c# 序列化bin文件 和反序列化读取
2019-10-29 17:55:04c#的.net序列化有多种方式,大多使用流来创建二进制文件。这里以其中一种为例: 序列化bin文件: Stream fstream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None); ...