vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Problem bei Konvertierung von C++ Code 
Autor: ModeratorDaveS (Moderator)
Datum: 18.09.08 18:06

&HCCCCCCCCCCCCCCCCUL

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Problem bei Konvertierung von C++ Code 
Autor: Nesti
Datum: 18.09.08 18:01

Hallo Leute,

ich habe von einem Kollegen ein Teil Code in C++ gekriegt, welchen ich versuche nach VB 2005 zu portieren. Dabei habe ich einige Probleme von denen ich das erste hier mal beschreiben möchte.


// Checksumme bilden
DWORD64 checksum;
checksum = Serial + (Computer << 7) + (Activation << 9) + (Usuage << 11);
checksum ^= 0xccccCCCCccccCCCC;
Das Problem ist, dass ich beim Versuch den Wert "0xccccCCCCccccCCCC" in einen ULong zu laden einen Überlauf als Fehler ausgespuckt kriege, obwohl dieser Wert ja eigentlich darstelbar sein sollte.


Habt ihr 'ne Idee, den oberen Code in VB zu schreiben?

Danke und Grüße,
Nesti
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Konvertierung von C++ Code 
Autor: Nesti
Datum: 18.09.08 18:14

Hey, top!!! Tausend Dank!


Da das ja super schnell ging, hab ich noch einen Fall

char DigitalProductID[256];
DWORD dwSum=0;
DWORD *ptr;
DWORD idx;
 
for (idx=0; idx<64; idx++)
{
  ptr = (DWORD*)DigitalProductID + idx;
  dwSum += *ptr;
}
Ich hab mal (soweit ich das abschätzen kann) alles unwichtige rausgelassen. Was passiert in der Schleife? Diese Zeigergeschichte bereitet mir Kopfzerbrechen.

Nochmals tausend Dank.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Konvertierung von C++ Code 
Autor: ModeratorDaveS (Moderator)
Datum: 18.09.08 18:25

Ich schätze man könnte das so umsetzen
        Dim DigitalProductID(255) As Byte
        Dim dwSum As Integer = 0
 
        For i As Integer = 0 To 252 Step 4
            dwSum += BitConverter.ToInt32(DigitalProductID, i)
        Next

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Konvertierung von C++ Code 
Autor: Nesti
Datum: 18.09.08 18:48

Danke schonmal.

Allerdings kriege ich einen Überlauf?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Konvertierung von C++ Code 
Autor: ModeratorDaveS (Moderator)
Datum: 18.09.08 19:06

Ja, sorry, sollte alles auch unsigned sein (UInteger, ToUInt32())
        Dim DigitalProductID(255) As Byte
        Dim dwSum As UInteger = 0
 
        For i As Integer = 0 To 252 Step 4
            dwSum += BitConverter.ToUInt32(DigitalProductID, i)
        Next

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Konvertierung von C++ Code 
Autor: ModeratorDaveS (Moderator)
Datum: 18.09.08 19:11

Naja, vielleicht kommt es denn doch. Muss ich mir überlegen.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Konvertierung von C++ Code 
Autor: ModeratorDaveS (Moderator)
Datum: 18.09.08 19:17

Eventuell kommt so die richtige Antwort raus
        Dim DigitalProductID(255) As Byte
 
        Dim dwSuml As ULong = 0
 
        For i As Integer = 0 To 252 Step 4
            dwSuml += BitConverter.ToUInt32(DigitalProductID, i)
        Next
 
        Dim dwSum As UInteger = dwSuml And &HFFFFFFFFUL

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Konvertierung von C++ Code 
Autor: Nesti
Datum: 18.09.08 19:22

Wenn ich mal bis zu einer Antwort käme.
Ich kriege immer noch einen Überlauf in der Schleife, egal was das Byte-Array für einen Inhalt hat.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Konvertierung von C++ Code 
Autor: ModeratorDaveS (Moderator)
Datum: 18.09.08 19:27

Mit diesem letzten Code bekommst du keinen Überlauf.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Problem bei Konvertierung von C++ Code 
Autor: Nesti
Datum: 18.09.08 19:54

Stimmt. Sorry hatte eine andere Fehlermeldung bekommen, aber nicht gemerkt.

Dank dir vielmals!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel