Random

TobGod

Erfahrenes Mitglied
Ist mir eigentlich schon fast peinlich, aber ich habe weder im Netz noch in diesem Forum eine funktionierende Syntax einer Random-Funktion für MFC-Anwendungen gefunden. Gibt es das unter MFC nicht !? Ich wollte einfach nur 0 oder 1 per Zufall bekommen. *Bitte schlagt mich nicht* Gruß Tobi :(
 
Beispiel 1:1 aus der MSDN kopiert:

PHP:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

int main( void )
{
   int i;

   /* Seed the random-number generator with current time so that
    * the numbers will be different every time we run.
    */
   srand( (unsigned)time( NULL ) );

   /* Display 10 numbers. */
   for( i = 0;   i < 10;i++ )
      printf( "  %6d\n", rand() );
}

Wenn du 0 und 1 haben willst muss das so aussehen : rand()%2
Das liefert dann ganze zahlen wischen 0 und 1 ^^

M.f.G. Erik
 
Zuletzt bearbeitet:
Ok, danke läuft, aber darauf wär ich echt nicht alleine gekommen, dann noch mit dem Modulo-Operator ist ja ne feine Sache, ich hätte es anders (komplizierter) versucht zu lösen, solange würfeln lassen bis die Zahl 0 oder 1 ist :-)

Und dann habe ich gleich noch eine Frage und zwar:
Wenn ich ein Programm kompiliert habe usw, sodass ich die .exe habe, läuft das Programm ja nur auf meinem Rechner, auf anderen fordert er irgendsoeine *.dll an. Muss ich die dann immer mitliefern oder lässt sich das anders lösen ? Danke schonmal :)
 
Kommt darauf an, welche MFC du hast. Für MFC 6 hatten die Windows-Versionen die entsprechenden DLL im System-Ordner. Bei VS 2003 (MFC 7.1) sah das schon anders aus. Da fehlten meist diese DLL.
Du hast zwei Möglichkeiten.
1. Wenn dein system es erlaubt, kannst du statisch linken. Dann ist alles in der .exe, was gebraucht wird.
2. Du gibst die entsprechenden DLL mit. Beachte aber, daß nur Release-DLL weitergegeben werden dürfen. Also niemals Debug-Versionen weitergeben, immer nur Release.

Mfg

langer
 
Wie kann man das denn statisch linken ? Ich habe MVS 2003.. Und woran erkenne ich Release-DLL und Debug-DLL's ?
 
Debug-DLLs haben ein U im Namen (z.B. MFC71u.dll), die korrespondierende Release-DLL heißt MFC71.dll.
Und statisch linken kannst du, wenn du im Menu "Projekt->Eigenschaften von.." bei "Verwendung von MFC" "MFC in einer statischen Bibliothek verwenden" einstellst.
Beachte dabei aber: Beim dynamischen Linken wird beim Programmstart automatisch die richtige MFC-Localisations-DLL geladen. Beim statischen Linken werden die Localisations-Ressourcen eingebunden, die sich im Ordner "Vc7/atlmfc/include" befinden. Das ist meist englisch-usa. Um dann die System-Meldungen in Deutsch zu bekommen, müssen dies durch die im Ordner "l.deu" befindlichen Ressourcen-Dateien ersetzt werden.
Einfach alle Dateien aus diesem Ordner in den o.g.Ordner schieben.

Mfg

langer
 
Zurück