![]() |
Anzeige:
|
|
|||||||
| C/C++, Visual C++, Visual C++.NET Fragen und Antworten zu C/C++, Visual C++ und Visual C++.NET |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Gast
Beiträge: n/a
|
Hi,
alsoo...ich hab vollgändes prob: Wie kann ich z.B. DWORD VAR1 = 0x4446; mit DWORD VAR2; vergleichen.. ? Also hier mein Bishäriger Code.. Code:
// Manche Header werden NOCH nicht gebraucht...
#include <iostream>
#include <strings.h>
#include <fstream.h>
#include <conio.h>
#include <windows.h>
using namespace std;
int main()
{
/*****Variablen die zum Laden der Header erstellt wurden*****/
DWORD SIGi;
DWORD HSZi;
WORD RS1i;
WORD RS2i;
LONG BWPi;
LONG BHPi;
WORD BIPi;
WORD FT01i;
WORD FT04i;
WORD FT08i;
WORD FT16i;
WORD FT32i;
DWORD CM1i;
DWORD CM2i;
DWORD CM3i;
DWORD CM4i;
DWORD SI1i;
DWORD SZIi;
LONG HPPM2i;
LONG HPPMi;
LONG VPPM2i;
LONG VPPMi;
DWORD FTBi;
DWORD FTB1i;
DWORD IPCi;
DWORD IPC1i;
/*****Variablen die zum Vergleich zu den Geladenen Daten sind*****/
DWORD SIG = 0x424D; //BMP Signatur
DWORD HSZ = 0x00000040;//Grösse der Header
WORD RS1 = 0x0000; //Reserwierd muss 0000 sein
WORD RS2 = 0x0000; //Reserwierd muss 0000 sein
LONG BWP; //Breite in Pixeln
LONG BHP; //Höhe in Pixeln
WORD BIP = 0x0001; //Muss 00001 sein (Anzahl der Farbebenen)
WORD FT01 = 0x0001; //Farbtiefe in BPP (bits per Pixel) möglichkeit 1
WORD FT04 = 0x0004; //Farbtiefe in BPP (bits per Pixel) möglichkeit 2
WORD FT08 = 0x0008; //Farbtiefe in BPP (bits per Pixel) möglichkeit 3
WORD FT16 = 0x0010; //Farbtiefe in BPP (bits per Pixel) möglichkeit 4
WORD FT32 = 0x0020; //Farbtiefe in BPP (bits per Pixel) möglichkeit 5
DWORD CM1 = 0x00000000;//Kompression möglichkeit 1
DWORD CM2 = 0x00000001;//Kompression möglichkeit 2
DWORD CM3 = 0x00000002;//Kompression möglichkeit 3
DWORD CM4 = 0x00000003;//Kompression möglichkeit 4
DWORD SI1 = 0x00000000;//Grösse der Bilddaten oder 00000000
DWORD SZI; //Grösse der Bilddaten (andere Werte)
LONG HPPM2= 0x00000000;//Horizontale Auflösung Pixel pro Meter; wird aber fast immer auf 0 gesetzt
LONG HPPM; //Horizontale Auflösung Pixel pro Meter(andere möglichkeiten)
LONG VPPM2= 0x00000000;//Vertikale Auflösung Pixel pro Meter (0)
LONG VPPM; //Vertikale Auflösung Pixel pro Meter (andere möglichkeiten)
DWORD FTB = 0x00000000;
DWORD FTB1;
DWORD IPC = 0x00000000;
DWORD IPC1;
/*** Die Farben (Vergleichs-Variablen) ***/
/* 3 Byte werden nicht als BYTE Definiert... auch nicht als WORD... was denn ? */
BYTE BL = 0x000000;
BYTE WH = 0xFFFFFF;
BYTE R = 0xFF0000;
BYTE G = 0x00FF00;
BYTE B = 0x0000FF;
BYTE HG = 0xC8C8C8;
BYTE DG = 0x808080;
/*** Daten hochladen ***/
string Daten;
cout << "Dateiname: ";
cin >> Daten;
ifstream in(Daten);
in >> SIGi;
in >> HSZi;
in >> RS1i;
in >> RS2i;
in >> BWPi;
in >> BHPi;
in >> BIPi;
in >> FT01i;
in >> FT04i;
in >> FT08i;
in >> FT16i;
in >> FT32i;
in >> CM1i;
in >> CM2i;
in >> CM3i;
in >> CM4i;
in >> SI1i;
in >> SZIi;
in >> HPPM2i;
in >> HPPMi;
in >> VPPM2i;
in >> VPPMi;
in >> FTBi;
in >> FTB1i;
in >> IPCi;
in >> IPC1i;
char var = in.get();
cout << "TEST" <<endl;
if (SIGi == SIG) //UND HIER KLAPPT ES NICHT !!!
{
//weiterer Code
}
//weitere IF anweisungen
getch();
}
TEST.bmp Code:
42 4D 46 00 00 00 00 00 00 00 36 00 00 00 28 00 00 00 02 00 00 00 02 00 00 00 01 00 18 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF 00 00 00 00 00 00 00 00 FF FF FF 00 00 aber trotzdem...aler ladet irgendwelche komischen zahlen garnix damit zutun haben... Wie kann ich die Daten wirklich so lade damit er die Hexadeziemalen Werte ladet ?? Danke im Vorraus... |
|
|
|
|
#2 (Direktlink) | |
|
Gast
Beiträge: n/a
|
Alsoo.. die Variablen SIGi RVDi usw. laden ja irgendwelche komischen zahlen... da hab ich diese Variante:
Code:
ifstream in; in(Daten, ios::in | ios::binary) // die einzelnen Variablen... in.close(); Zitat:
Nun wie soll ich das machen ? MFG SNIPER-HAWK |
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|