![]() |
Anzeige:
|
|
|||||||
| C/C++, Visual C++, Visual C++.NET Fragen und Antworten zu C/C++, Visual C++ und Visual C++.NET |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 14.02.2006
Beiträge: 3
|
Hi
ich habe unter VC++.net 2003 ein Problem bei der Verwendung von ZeroMemory. Ich habe ein struct definiert : Code:
typedef struct init1
{
CString name;
CString name2;
int anzahl;
double preis;
} INIT;
Unter C .net werden lediglich die "nicht CString"-Variablen Null gesetzt. Die CStrings werden komplett zerstört (NullPointer). Weiß jemand woran das liegt, und wie ich Abhilfe schaffen kann. Eine Umprogrammierung kommt leider nicht in Frage, da es sich um ein recht umfangreiches Projekt handelt. (viele große Strukturen in etlichen Funktionen, daher auch kein Leeren von Hand) Gruß vulcanus |
|
|
|
|
|
|
#2 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.05.2004
Ort: Düsseldorf
Beiträge: 1.672
|
Hallo,
nein memset,zeromemory ist bei CString keine gute Idee.. 3. Lösungsversuche: (Hmmh .Net tja ne weiss ich jetz auch nicht so genau, ich habe im Moment auch kein C Compiler installiert) 1.) INIT myinit={0}; 2.) INIT myinit; myinit.name.Empty(); 3.) Strukturen sind vom Prinzip her in C++ nichts anderes als Klassen oder Unions, also es ist auch möglich für Strukturen Konstruktoren und Destruktoren zu verwenden, wie bei einer normalen Klasse auch. Peter |
|
|
|
|
|
#3 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 14.02.2006
Beiträge: 3
|
Hallo
Danke für die Tips, allerdings hatte ich die ersten beiden schon in Erwägung gezogen. Nur dummerweise handelt es sich um mehrere komplexe Strukturen, so dass ich diese Gedanken des enormen Aufwands wegen verworfen habe. Wie gesagt, mit ZeroMemory war das schön einfach, da dieser Befehl bisher auf jede noch so komplexe Struktur anwendbar war. Ich komme allerdings mit dem 3. Punkt "Strukturen sind vom Prinzip her in C++ nichts anderes als Klassen oder Unions, also es ist auch möglich für Strukturen Konstruktoren und Destruktoren zu verwenden, wie bei einer normalen Klasse auch. " nicht klar. Da erscheinen irgendwie 3 Fragezeichen über meinem Kopf Wie erstelle ich für Strukturen Konstruktoren und Destruktoren? Und wie verwende ich diese? vulcanus |
|
|
|
|
|
#4 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.05.2004
Ort: Düsseldorf
Beiträge: 1.672
|
Funktiniert nicht in C# !!!
Code:
struct MyStruct
{
CString strMyString;
int a;
public MyStruct() //Konstruktor, inline, selber Name wie Struktur
{
strMyString .Empty();
iMyA=10;
}
}
|
|
|
|
|
|
#5 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 14.02.2006
Beiträge: 3
|
Hallo
Danke, klappt super und der Aufwand hält sich in Grenzen. Gruß vulcanus |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|