Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

11

05.08.2009, 11:34

ich meine einfach nur von app zur dll und zurück, prozessintern also.
aber nochnicht mal als zeiger / referenz klappt es.

z.b.

C-/C++-Quelltext

1
2
3
std::queue<Message> *queue = DLLInterface->GetMessageQueue();
queue->size(); // 47634341

queue->pop(); // crash, bad alloc oder head corrupt


das teil hat maximal 50 einträge und ist definitiv nicht leer.
das lustige ist, das die fehlermeldungen sich von lauf zu lauf unterscheiden
können :D

ich vermute dass die vc-stl in der appdurch irgentwelche ifdefs kleiner/größer ist, als die in der dll

durchs debuggen bin ich darauf gekommen, dass z.b. das vectorobjekt
4 bytes zu "früh" im speicher liegt. durch entsprechendes casten
komme ich dann an einen wunderbar gültigen zeiger
(beim out of scpoe knallts aber wieder wegen dem stackobjekt....)

edit: std::queue und nicht std::Vector :roll:
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson