[英]How to use builder and stub in WPF C#
我尝试使用生成器和存根构建应用程序,但失败了
我的生成器代码:
File.Copy(AppDomain.CurrentDomain.BaseDirectory + @"\Camstub.exe", filepath);
string split = "|";
string info = split + CName.Text + split + Link.Text + split;
FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
BinaryWriter bw = new BinaryWriter(fs);
fs.Position = fs.Length + 1;
bw.Write(info);
bw.Close();
MessageBox.Show(info);
我的存根代码:
public MainWindow()
{
InitializeComponent();
StreamReader sr = new StreamReader(System.Windows.Forms.Application.ExecutablePath);
BinaryReader br = new BinaryReader(sr.BaseStream);
byte[] fileData = br.ReadBytes(Convert.ToInt32(sr.BaseStream.Length));
br.Close();
sr.Close();
ASCIIEncoding Enc = new ASCIIEncoding();
string split = "|";
string Message = Enc.GetString(fileData);
MessageBox.Show(Message);
生成器中的消息框显示给我:
该应用程序已成功构建,但执行我时显示的消息框显示:
因此,我希望两者都具有相同的消息框。
任何想法 ?
提前致谢 ;)
根据注释中给出的信息,您想阅读| CName | Link |。 文件末尾的数据。 | CName | Link | 数据可以具有可变长度。
为了处理可变长度的数据,您需要以某种方式指示数据的字节长度。 在给定的情况下,一个简单而合适的解决方案是将字节长度存储为| CName | Link |之后的文件末尾的2字节或4字节数字。 数据。 一个2字节的数字(即ushort或UInt16 )允许指定一个最大长度为65536的长度,并且应该足以满足您的目的。 (如果数据可以大于64KB,则使用4个字节存储长度。)
因此,构建器应执行以下操作:
存根应执行以下操作:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.