Hallo zusammen!
Nach stundenlangem Versuchen bin ich mittlerweile sowohl enttäuscht als auch genervt von .NET. Alles was ich versuche ist eine möglichst dynamische Funktion zu erstellen die es ermöglicht aus einem Speicherstrom ein Objekt zu erstellen.
In C++ würde ich das folgendermassen machen:
In C++/CLI sitze ich nun verzweifelt vor der Umsetzung dessen. Ich hatte schon dutzende Versuche gestartet, alle bisher ohne Erfolg. Bisher sieht das ganze so aus:
Wie kriege ich das nun für alle anderen Typen hin? Der soll einfach sizeof(T) Bytes aus meinem MemoryStream (m_reader) lesen und das übergebene Element damit "befüllen". Ist so etwas wirklich nicht machbar? Wenn ja, dann werde ich wohl wohl oder übel .NET wieder den Rücken kehren müssen, das wäre doch einge mehr als gigantischer Flop.
Gruss
Cromon
Nach stundenlangem Versuchen bin ich mittlerweile sowohl enttäuscht als auch genervt von .NET. Alles was ich versuche ist eine möglichst dynamische Funktion zu erstellen die es ermöglicht aus einem Speicherstrom ein Objekt zu erstellen.
In C++ würde ich das folgendermassen machen:
Code:
template<typename T>
void Read(T& value)
{
memcpy(&value, m_pBuffer, sizeof(T));
}
In C++/CLI sitze ich nun verzweifelt vor der Umsetzung dessen. Ich hatte schon dutzende Versuche gestartet, alle bisher ohne Erfolg. Bisher sieht das ganze so aus:
Code:
generic<typename T>
void Read(T% in)
{
Type^ t = T::typeid;
if(t->Equals(System::String::typeid))
{
in = (T)System::Text::Encoding::ASCII->GetString(m_content, m_readPoint, m_content->Length - m_readPoint);
m_readPoint += ((String^)in)->Length + 1;
}
else
{
}
}
Wie kriege ich das nun für alle anderen Typen hin? Der soll einfach sizeof(T) Bytes aus meinem MemoryStream (m_reader) lesen und das übergebene Element damit "befüllen". Ist so etwas wirklich nicht machbar? Wenn ja, dann werde ich wohl wohl oder übel .NET wieder den Rücken kehren müssen, das wäre doch einge mehr als gigantischer Flop.
Gruss
Cromon