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

1

06.07.2009, 15:14

vc++ stl objekte...

"Alles was nicht in die anderen Foren passt", hoffe hier bin ich richtig.

zum problem:

ich nutze das visual studio 2008 standard edition. bin erst seit
kurzen darauf umgestiegen. seit dem ich mit dem teil arbeite, kann ich
keine stl objekte (vector, string, list, queue und wie sie alle heißen)
mehr über DLL grenzen hinweg kopieren
, auch referenzen oder zeiger
darauf funktionieren nicht.

das kopieren klappt noch, aber das objekt kann ich danach nicht nutzen,
immer stürtzt es ab.

dabei scheint es sich um ein sogar schon von microsoft festgestellten bug
zu handeln. diese haben darauf hin sogar schon einen patch veröffendlicht.

runtergeladen -> "der installer konnte nicht ausgeführt werden"

danach habe ich mal die stl bzw. den include ordner meines vc++ express
in das verzeichnis des vc standard kopiert. auch das funktioniert nicht,
er scheint das verzeichnis zu ignorieren.

ich weiß echt nicht was ich da noch machen soll. es funktioniert einfach
garnicht. normaler code funktioniert, nur sobald es um STL objekte
geht knallt es. die interne verwendung klappt auch problemlos, aber
ich kann doch nicht immer einen zeiger auf die vectordaten liefern um
das teil zu benutzen?

help :(

geändert von koschka:
verzeichnis wird nicht _verzeichnis_s_ geschrieben ;o) (Grund: es wurden Sternchen (*) angezeigt)
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

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

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

10.07.2009, 22:11

Hmm. Merkwürdig..
Naja.. wenn die Lösung von MS nicht funktioniert, dann würde ich halt wieder zu einer älteren, lauffähigen Version wechseln..
Oder vorher mal probieren neu zu installieren, oder auf einem anderen PC das ausprobieren..

Oder vielleicht nochmal schauen, ob ein neuerer Installer verfügbar ist..

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

3

27.07.2009, 18:04

.dll dateien und templates vertragen sich nicht gut. lass es einfach bleiben.
"Don't trust your eyes: They are a hell of a lot smarter than you are"

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

27.07.2009, 22:14

Das stimmt so pauschal nicht. MS hat nur anscheinend in allen nicht-Expressversionen Mist gebaut bei de Allokatoren. Mich wundert es nur, dass es dafür noch keinen Fix gibt.
Schonmal dem Support auf die Nerven gegangen? Vielleicht haben die ne Lösung parat oder wissen mehr als wir (oder zumindest mehr als ich).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

28.07.2009, 07:33

Zitat

Schonmal dem Support auf die Nerven gegangen? Vielleicht haben die ne Lösung parat oder wissen mehr als wir (oder zumindest mehr als ich).

Bei den Expressversionen gibt es wahrscheinlich gar keinen Support.. -.-
Aber versuchen kann man es ja.. :p

EDIT:
Gar nicht gesehen, dass es gar nicht um Express geht.. :oops:

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

6

28.07.2009, 10:30

naja, ich habe auch schon versucht referencen auf stl vektoren an dll funktionen zu übergeben. trotz expliziter instanziierung etc. hats nicht funktioniert. es ist die mühe einfach nicht wert, lass es bleiben =)
"Don't trust your eyes: They are a hell of a lot smarter than you are"

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

7

28.07.2009, 14:09

hm dann wieder die express version?

.....
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

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

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

28.07.2009, 19:12

Es kann sein, dass ich mich gerade vertue, aber ich meine, da gäbe es dieses Problem nicht *grübel* Aber keine Garantie!
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

FalkT

Treue Seele

Beiträge: 125

Wohnort: AC

  • Private Nachricht senden

9

04.08.2009, 18:27

Re: vc++ stl objekte...

Zitat von »"Gotbread"«


zum problem:

ich nutze das visual studio 2008 standard edition. bin erst seit
kurzen darauf umgestiegen. seit dem ich mit dem teil arbeite, kann ich
keine stl objekte (vector, string, list, queue und wie sie alle heißen)
mehr über DLL grenzen hinweg kopieren
, auch referenzen oder zeiger
darauf funktionieren nicht.

Welche Technik nutzt du dafür ? - Shared-Sections ?
Mit DLL-Grenzen meinst du prozessübergreifend ?

Mit ein paar mehr Details kann man dir sicherlich besser helfen.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

10

05.08.2009, 07:12

Es geht einfach darum, dass zum allokieren die CRT aus der DLL und zum deallokieren die CRT aus der exe genutzt wird. Also soweit ich weiß gibt es verschiedene Möglichkeiten. Entweder wurden DLL und EXE mit unterschiedlichen Versionen gelinkt oder man übergibt den Objekten einen Allokator oder man linkt statisch gegen die CRT (oder wars doch dynamisch *grübel*). Es ist auf jeden Fall ein wenig Fummelei.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige