error C2664 HILFEEEEEE



  • Hallo alle zusammen,
    habe seit einiger Zeit folgendes Problem beim Kompilieren von dem unten stehendem Quelltext:

    c:\angewandteinfo\10-5\10-5.cpp(73) : error C2664: 'time': Konvertierung des Parameters 1 von 'long *__w64 ' in 'time_t *' nicht möglich
    Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.

    Wass ich allerdings nicht verstehe ist, dass der Fehler unter DEV-C++ nicht auftaucht.

    #include <iostream>
    #include <stdlib.h>
    #include <time.h>
    
    using namespace std;
    
    int game(unsigned short zzz)
    {
         cout << "BINGO!!!\n";
    }
    
    int main()
    {
        int s=1;
        char abf;
        long sek;
        unsigned short zzahl;
        float r;
    
    	time(&sek);
    	srand(sek);
    
    	r = (float)rand()/(RAND_MAX+1); // Zahl zwischen 0 und 1
    	zzahl = (unsigned short)(1 + 15 * r);
    	while (s)
    	{
    	game(zzahl);
    	cout << "Wollen Sie noch mal spielen? ";
    	cin >> abf;
    	if (abf=='j') { s=1; }
    	else { s=0; }
        }
    
    	system ("pause");
    
    }
    

    Vielen Dank im voraus 🙂

    ps: Ich benutze Visual C++ 2005



  • Per default ist unter VS2005 das time_t anders definiert, da es sonst zum (wohl bekannten) Jahr 2038 Bug kommt...
    Wenn Du es so haben willst wie bisher, dann musst Du folgendes definieren:

    _USE_32BIT_TIME_T



  • Vielen Dank... 👍


Anmelden zum Antworten