Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Variablen eine Adresse zuweisen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.10.2004, 13:10 Uhr
Sapphira



Hallo,

ich habe mittelst


C++:
char* Eintrag = "10";
int Adresse = (int)Eintrag;



die Adresse von der Variablen Eintrag in Adresse gespeichert.
Ist es möglich,


C++:
char* Eintrag2;



die Adresse von Eintrag zuzuweisen?

Dieser Post wurde am 06.10.2004 um 13:10 Uhr von Sapphira editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.10.2004, 13:19 Uhr
virtual
Sexiest Bit alive
(Operator)



C++:
Eintrag = (char*)&Adresse;


... was willst Du tun?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 06.10.2004 um 13:20 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.10.2004, 13:31 Uhr
ao

(Operator)



C++:
char * Eintrag2 = Eintrag1; // Eintrag2 zeigt auf dasselbe Ziel, also auf "10".


So gehts.


C++:
char * Eintrag2 = (char *) &Eintrag1; //Pfui!


Durch den gewaltsamen Cast auf (char*) geht das zwar durch den Compiler, aber es kann zur Laufzeit gewaltigen Blödsinn auslösen, wenn man damit programmiert wie mit einem gültigen char*-Pointer. &Eintrag1 ist die Adresse der Zeigervariablen und nicht die Adresse der Zeichenkette.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.10.2004, 13:48 Uhr
Sapphira




Zitat von virtual:

C++:
Eintrag = (char*)&Adresse;


... was willst Du tun?


Ich habe eine DLL geschrieben.
Diese DLL kann einen Thread starten und stoppen.
Ich habe die ganze Zeit überlegt, wie ich in der DLL mehrere Threads auseinander halten kann, damit genau der Thread gestoppt wird, den ich ausgewählt habe.
Da habe ich mir gedacht, wenn ich mir die Adresse merke, wo die einzelnen Threads "beginnen", dann kann ich einfach ein neues Thread-Objekt erzeugen, und die gewünschte Adresse zuweisen .... und dann hoffe ich, dass das so funktioniert. .... oder bin ich da total aufm falschen Dampfer?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.10.2004, 13:58 Uhr
Pablo
Supertux
(Operator)



Zitat von Sapphira:
Hallo,

ich habe mittelst


C++:
char* Eintrag = "10";
int Adresse = (int)Eintrag;






das ist möglich aber unnötig, Eintrag speichert schon die Adresse von der zeichenkette "10", das ist der Sinn eines Pointers.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
06.10.2004, 14:11 Uhr
ao

(Operator)



Zitat von Sapphira:
Ich habe eine DLL geschrieben.
Diese DLL kann einen Thread starten und stoppen.

Damit ist das ganze auf jeden Fall systemabhängig. "DLL" riecht stark nach Windows. Kommt, wir reden in WinAPI weiter.


Zitat:
... ein neues Thread-Objekt erzeugen, und die gewünschte Adresse zuweisen ...

Was verstehst du unter einem Thread-Objekt? Das HANDLE, was von CreateThread zurückgegeben wird? Zeig doch mal den Code, der die Threads erzeugt und den, der sie verwaltet.


Zitat:
oder bin ich da total aufm falschen Dampfer?

Kann auch sein. Kommt drauf an, wie diese Thread-Objekte beschaffen sind und ob man sie einfach kopieren kann. Aber dazu brauchen wir Code.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
06.10.2004, 14:39 Uhr
Sapphira



Also,

C++:
//DLL:
__declspec (dllexport) void StartMainthread(unsigned long &MainThreadID,
{
CMainthread m_pMainthread = new CMainthread;
MainThreadID = (int)m_pMainthread;
m_pMainthread->Run(Number);
}

//CMainthread.cpp
void CMainthread::Run(UINT16 Number)
{
CWinThread* m_pThread;
m_pThread = AfxBeginThread();
}

//danach werden automatisch weitere Threads gestartet von der Klasse CSubThreads



Unter einem Thread-Objekt verstehe ich in meinem Fall m_pMainthread.

In der DLL können mehrere Mainthreads gestartet werden, aber ich weiß nicht wie ich die auseinander halten soll. Deshalb die Idee mit der Adresse speichern und weitergeben.

Dieser Post wurde am 06.10.2004 um 14:40 Uhr von Sapphira editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: