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

idontknow

unregistriert

1

02.04.2011, 19:21

SFML2: endlosschleife beim laden der DLLs

moin!

ich hab ein Problem mit SFML2 & Visual Studio 2010. Bis vor ca. einer Woche hat noch alles einwandfrei funktioniert, jetzt aber hängt sich jedes Programm bei dem die SFML2 libs mitgelinkt werden beim laden der DLL auf und ich weiß nicht warum bzw. wie ich diesen Fehler produziert habe, weil ich eigendlich nichts geändert habe.

Ich hab shcon versucht das ganze neu zu kompilieren aber irgendwie funktioniert es einfach nicht; das Ende vom Lied: kann mir jmd die Libs und DLLs für SFML2 unter Visual Studio 2010 hochladen`damit ich die testen kann?

mfg

2

02.04.2011, 21:06

Hey,

hier meine SFML 2 Libs (und natürlich DLLs) kompiliert mit VC++ 2010.

Vielleicht klappts ja damit?! Bei mir funktionieren alle Libs problemlos.

Gruß
SaRu_

idontknow

unregistriert

3

02.04.2011, 21:16

Bei mir ist esanfangs auch gegangen, aber dann hats nicht mehr funktioniert. Musste nur zwischendrinnen 1x VS neu installieren aber ich habe nichts bewusst geändert! Woltle das nur mal haben um sicherzugehen obs meine libs sind oder was anderes!

Danke, werds direkt testen!

edit: hast du die libs umbenannt? Bei mir hießen die immer sfml2 und nicht sfml..
edit: irgendwas stimmt nicht, die DLLs passen nicht zu den Libs x/; bei den libs muesste hinten drannen ein -2 sein sagt VS.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »idontknow« (02.04.2011, 21:33)


4

02.04.2011, 21:33

Hm du hast recht, ich hab noch mal in den Projekteinstellungen geschaut und die DLLs sollten eigentlich noch ein "-2" am Ende haben. Also z.B. sfml-audio-d-2.dll, sfml-graphics-d-2.dll, ...

Sorry.Aber ansonsten müssten die passen, sind aus dem gleichen Build-Verzeichnis..

Gruß
SaRu_

idontknow

unregistriert

5

02.04.2011, 21:35

Jop, also danke mit deinen Libs (hab die DLLs umbennant wie du gesagt hast!) habe ich imernoch das gleiche Problem!

6

02.04.2011, 21:36

Hab genau diese Libs aber gerade noch mal ein einem SFML Projekt von mir getestet und das lässt sich erstellen und läuft auch ohne Probleme. (Nutzt die Graphics-, System-, Window- und Network-Komponenten der SFML)

Gruß
SaRu_

idontknow

unregistriert

7

02.04.2011, 21:43

Ja, das ganze ist zimelich komisch. dot hat bei mir mal gedebuggt und das Programm endet in einer Endlosschleife. Hängt irgendwie mit dem CRT zusammen. Ich psote unten mal die entsprechende Funktion :).

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifdef CRTDLL
void __cdecl _initterm (
#else  /* CRTDLL */
static void __cdecl _initterm (
#endif  /* CRTDLL */
        _PVFV * pfbegin,
        _PVFV * pfend
        )
{
        /*
         * walk the table of function pointers from the bottom up, until
         * the end is encountered.  Do not skip the first entry.  The initial
         * value of pfbegin points to the first valid entry.  Do not try to
         * execute what pfend points to.  Only entries before pfend are valid.
         */
        while ( pfbegin < pfend )
        {
            /*
             * if current table entry is non-NULL, call thru it.
             */
            if ( *pfbegin != NULL )
                (**pfbegin)();
            [b]++pfbegin;[/b]
        }
}


Auf den fett markierten Teil zeigt der Debugger, wenn ich das Programm per Debugger pausiere. Hab keinen Ahnung was das heißt. Header: crt0dat.c - 32-bit C run-time initialization/termination routines

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

8

03.04.2011, 00:18

Hast du schon mal geschaut, ob das speziell ein SFML-Problem ist, oder ob das Problem grundsätzlich beim Linken aller Dlls auftritt. Evtl. stimmt dann etwas mit der VS-Version nicht. Wenn du sagst, du musstest sie neu installieren, dann scheint es da ja gewisse Probleme gegeben zu haben, weswegen das der Fall war.

idontknow

unregistriert

9

05.04.2011, 18:38

Ich hab noch nie mit DLLs gearbeitet daher kaum Ahnung, aber an genau das was du gesagt hast habe icha uch sczhon gedacht und mir dann eben ein DLL Projekt erstellt mit soner Funktion:

C-/C++-Quelltext

1
2
3
4
void doSth()
{
    std::cout << "dll function called!" << std::endl;
}


das ganze eben in eine DLL exportiert und die lib in einem anderen Projekt mitgelinkt, das hat funktioniert, könnte aber auch sein, dass ich einen Fehler gemacht habe, glaube ich aber momentan nicht.

Das dumme ist jetzt natürlich, dass wenn es generell nicht funktioniert hätte, dass ich VS einfach nochmal neu installiert hätte, scheint mir jetzt aber relativ unnütz zu sein. Was ich mir schon überlegt habe ist, dass es evtl ein VS Update gab bei der Neuinstallation was diesen Fehler verursacht? Ich such schlichtweg nach Lösungen, das Problem ist extreem nervig und ich wills wieder weg haben...

Die libs die wir im Projekt verwenden habe ich ja auf meinem PC kompiliert und hier hat es lange funktioniert. Bei meinem Kumpel funktioniert alles tadellos, aber wenn ich das Projekt hier kompilliere habe ich diese Endlosschleife. An den Projekteinstellungen habe ich auch nichts geändert.

Ich kann auch die Projektdatei/den Code hochladen wenns weiterhilft.

Werbeanzeige