簡體   English   中英

如何在運行時創建結構並將byte []指針轉換為創建的結構?

[英]How to create structure at runtime and convert byte[] pointer to created structure?

通常我們在設計時創建結構,創建對象並在運行時分配數據。 但我想在運行時創建結構。

我有結構成員和它的類型如下所示。

Name, String
Age , Int32
Hobies[], sring[]
Height, float
temp[], byte[]

等等...

現在,通過使用上述結構成員,在運行時創建結構。 我們將有包含數據的字節數組。 我應該使用PointerToStructure或其他東西對其進行Marshal並將其轉換為創建的結構。

先感謝您。

如果您確實想在運行時創建類型,請使用System.Reflection.Emit在運行時創建類型。

但是,如果需要訪問該結構的代碼是本機代碼,您可以使用Marshal.Copy將字節數組寫入指針,並且只要內存結構匹配,它就可以使用將其作為結構處理的本機代碼。 。 本機代碼永遠不會檢查提供給內存塊的指針是否是已定義的結構或其他東西,只是訪問具有指針偏移的成員。

請評論實際需要,如果需要,我將編輯答案以提供更詳細的幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM