自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#命名管道中轉(zhuǎn)換int型數(shù)組和字符數(shù)組的疑問

開發(fā) 后端
這里將提到C#命名管道中,如何傳遞int型數(shù)組呢?即int型數(shù)組和字符數(shù)組轉(zhuǎn)換問題。希望這樣的討論能給大家?guī)韼椭?/div>

C#命名管道中,有關(guān)于轉(zhuǎn)換的部分,最多的疑問來自于int型數(shù)組和字符數(shù)組的轉(zhuǎn)換。我們這里進(jìn)行的提問與回答,應(yīng)該能解釋這一問題。

C#命名管道中轉(zhuǎn)換int型數(shù)組和字符數(shù)組的提問

命名管道中要把一個(gè)數(shù)據(jù)寫入管道,那么需要調(diào)用下面的API函數(shù),如下:

  1. [DllImport("kernel32.dll", SetLastError=true)]   
  2. public static extern bool WriteFile(   
  3. IntPtr hHandle, // handle to file   
  4. byte[] lpBuffer,// data buffer   
  5. uint nNumberOfBytesToWrite, // number of bytes to write   
  6. byte[] lpNumberOfBytesWritten, // number of bytes written   
  7. uint lpOverlapped // overlapped buffer   
  8. );[/align]  


所有的數(shù)據(jù)必須轉(zhuǎn)換為字符數(shù)組的形式:byte[] lpBuffer, 如果是簡(jiǎn)單的基本類型,如int型,可以通過System.BitConverter.GetBytes(intdata),將int型數(shù)組轉(zhuǎn)換為byte[], 讀取數(shù)據(jù)時(shí)反過來通過System.BitConverter.ToInt32(bytes,0)將字符數(shù)組轉(zhuǎn)換為int型。.net庫函數(shù)提供了將基本類型數(shù)據(jù)

轉(zhuǎn)換為字符數(shù)組的函數(shù),但是沒有提供轉(zhuǎn)換復(fù)雜類型的函數(shù)。

所以,如果傳遞的是其他非基本類型數(shù)據(jù),如int型數(shù)組,該如何轉(zhuǎn)換呢?

C#命名管道中轉(zhuǎn)換int型數(shù)組和字符數(shù)組的回答

直接把數(shù)組序列化為Byte[]就可。

  1. BinaryFormatter formatter = new BinaryFormatter();   
  2. MemoryStream memStream = new MemoryStream();   
  3. formatter.Serialize(memStream, array);   
  4. memStream.Position = 0;   
  5. byte[] b=memStream.GetBuffer();   
  6. memStream.Close(); 

在C++中能夠?qū)nt型數(shù)組轉(zhuǎn)化為字節(jié)數(shù)組嗎?

這個(gè)肯定可以,問題是轉(zhuǎn)換后能不能在C#中用BinaryFormatter反序列化。

其實(shí)就是在C++中能不能模擬出BinaryFormatter的序列化的功能,可以研究BinaryFormatter的代碼,或者序序列化后的Byte數(shù)組結(jié)構(gòu)。

【編輯推薦】

  1. C#多態(tài)性概念及特點(diǎn)的解析
  2. C#取整函數(shù)實(shí)例應(yīng)用詳解
  3. C#單元測(cè)試的一個(gè)小故事
  4. C#單元測(cè)試概念及作用的淺析
  5. C#單元測(cè)試使用的必要性的淺析
責(zé)任編輯:彭凡 來源: CSDN
相關(guān)推薦

2009-08-28 10:44:46

C#字符數(shù)組轉(zhuǎn)換

2009-08-24 15:38:21

C# 泛型數(shù)組

2009-08-31 14:46:15

C# string b

2009-08-31 14:56:32

C# Byte數(shù)組轉(zhuǎn)換

2009-09-17 16:36:59

C#一維數(shù)組C#多維數(shù)組

2009-08-07 13:18:48

C#傳遞數(shù)組

2009-08-07 09:29:22

C#數(shù)組C#函數(shù)

2009-09-16 09:00:15

C#數(shù)組C#指針

2009-09-27 11:14:09

C#數(shù)組

2009-08-28 10:50:17

C#字節(jié)數(shù)組轉(zhuǎn)換成字符

2009-07-31 15:10:21

C#函數(shù)指針數(shù)組C#數(shù)組

2009-09-17 17:13:54

C#數(shù)組

2009-09-17 16:53:15

C#數(shù)組

2009-08-26 13:07:07

C#交錯(cuò)數(shù)組

2009-08-07 11:26:53

C#數(shù)組結(jié)構(gòu)

2009-09-02 10:58:02

C#動(dòng)態(tài)數(shù)組

2009-09-17 16:45:56

C#數(shù)組

2018-09-10 08:45:04

Linux管道命令

2009-08-26 18:28:44

C#數(shù)組

2009-09-02 16:30:20

C#定義數(shù)組
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)