Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > C/C++, Visual C++, Visual C++.NET

C/C++, Visual C++, Visual C++.NET Fragen und Antworten zu C/C++, Visual C++ und Visual C++.NET

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 94, Antworten: 5
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50850, Antworten: 1390
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26624, Antworten: 4194
Gehe zum ersten neuen Beitrag Windows Oberfläche (Schrift,...
Aufrufe: 177, Antworten: 10
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 65, Antworten: 5
Gehe zum ersten neuen Beitrag TabCtrl
Aufrufe: 122, Antworten: 12
Gehe zum ersten neuen Beitrag Dateien lassen sich nicht...
Aufrufe: 18, Antworten: 2
Gehe zum ersten neuen Beitrag Suche Programm um Werbung zu...
Aufrufe: 50, Antworten: 2
Gehe zum ersten neuen Beitrag McAfee AVERT Stinger...
Aufrufe: 14, Antworten: 0
Gehe zum ersten neuen Beitrag Sticky Password 6.0.2...
Aufrufe: 26, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18.11.2006, 23:27   #1 (Direktlink)
Sniper-Hawk
Gast
 
Beiträge: n/a
Standard Variablen mit HEX-Werten vergleichen....

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();
}
Nur jetzt klappt es nicht bei if(SIGi == SIG) wieso ?? also die Datei sieht vollgender maßen aus(im HEX-Editor):

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
Das entspricht umgefähr den Daten...die er vergleichen soll..
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...
  Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 19.11.2006, 18:30   #2 (Direktlink)
Sniper-Hawk
Gast
 
Beiträge: n/a
Standard

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();
doch hier kommt so ein Fehler:
Zitat:
19: error: no matching function for call to `std::basic_ifstream<char, std::char_traits<char> >::open(std::string&, std::_Ios_Openmode)'
C:/Dev-Cpp/include/c++/3.4.2/fstream:570: note: candidates are: void std::basic_ifstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]
In vielen Tutorials und so steht das genau so ! Aber es geht net !
Nun wie soll ich das machen ?

MFG
SNIPER-HAWK
  Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > C/C++, Visual C++, Visual C++.NET

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an




Alle Zeitangaben in WEZ +2. Es ist jetzt 06:31 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2