日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
C#命名管道中轉(zhuǎn)換int型數(shù)組和字符數(shù)組的疑問(wèn)

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

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

命名管道中要把一個(gè)數(shù)據(jù)寫(xiě)入管道,那么需要調(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)單的基本類(lèi)型,如int型,可以通過(guò)System.BitConverter.GetBytes(intdata),將int型數(shù)組轉(zhuǎn)換為byte[], 讀取數(shù)據(jù)時(shí)反過(guò)來(lái)通過(guò)System.BitConverter.ToInt32(bytes,0)將字符數(shù)組轉(zhuǎn)換為int型。.net庫(kù)函數(shù)提供了將基本類(lèi)型數(shù)據(jù)

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

所以,如果傳遞的是其他非基本類(lèi)型數(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è)肯定可以,問(wèn)題是轉(zhuǎn)換后能不能在C#中用BinaryFormatter反序列化。

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


當(dāng)前題目:C#命名管道中轉(zhuǎn)換int型數(shù)組和字符數(shù)組的疑問(wèn)
本文路徑:http://www.5511xx.com/article/dpciich.html