में एक संरचना में बाइट्स पढ़ना। मैं अपने छोटे 3 डी इंजन प्रोजेक्ट के लिए एक एमडी 2 लोडर लिख रहा हूं। मेरी पुरानी भाषा में (सी) मैं एक संरचना को परिभाषित कर सकता हूं और फिर खुली फ़ाइल से सीधे संरचना में पढ़ सकता हूं।दीवार प्रश्न से दूसरे के लिए सी #
[StructLayout(LayoutKind.Sequential)]
public struct MD2_Header
{
public int FourCC;
public int Version;
public int TextureWidth;
public int TextureHeight;
public int FrameSizeInBytes;
public int NbrTextures;
public int NbrVertices;
public int NbrTextureCoords;
public int NbrTriangles;
public int NbrOpenGLCmds;
public int NbrFrames;
public int TextureOffset;
public int TexCoordOffset;
public int TriangleOffset;
public int FrameOffset;
public int OpenGLCmdOffset;
public int EndOffset;
}
मेरे पाठक कोड में, मैं की तरह कुछ करना चाहते हैं: इस प्रकार मैं एक संरचना MD2 फ़ाइल से हेडर सूचना धारण करने के लिए है
// Suck the MD2 header into a structure, it is 68 bytes long.
Classic.Util.MD2_Header md2hdr = new Classic.Util.MD2_Header();
md2hdr = reader.ReadBytes(sizeof(Classic.Util.MD2_Header));
मुझे पता है यह सही नहीं है , क्योंकि यह कुछ हद तक अजीब प्रकार की सुरक्षा को तोड़ता है, लेकिन आपको यह पता चलता है कि मैं क्या हासिल करना चाहता हूं। मैं पाठक को अलग-अलग कॉल के साथ ऐसा कर सकता हूं। ReadInt32(), लेकिन अगर मैं सामान्य लाइब्रेरी कॉल का उपयोग कर रहा हूं, तो काम करने के लिए वैसे भी उत्सुक हूं।
मैंने मार्शल.कोपी() विधि में थोड़ा सा देखा है, लेकिन ऐसा लगता है कि यह प्रबंधित और अप्रबंधित स्मृति के बीच जा रहा है, जो वास्तव में मैं यहां नहीं कर रहा हूं।
कोई सुझाव?
किसी तरह लग रहा है के लिए एक इसी पद यह करने के लिए आप को हरा: http://gpwiki.org/index.php/C_sharp:MD2_loader_in_CSharp – Jess