RtlMoveMemory auf Win7/mit Blitz+ nicht benutzbar?
Übersicht

![]() |
Xaymarehemals "Cgamer"Betreff: RtlMoveMemory auf Win7/mit Blitz+ nicht benutzbar? |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] ;TEST Dieser Code führte bei mir gerade auf Win7 mit Blitz3D und Blitz+ zu einem totalen crash(BlueScreen) virtual WinXP mit B3D: virtual WinXP mit B+: Win7 mit B3D( ganze 7 sekunden lang hats gelaufen, reichte um nen screenshot zu machen) Win7 mit B+: Hat den kompletten PC lahmgelegt. Absolut alles war nicht mehr richtig funktionstüchtig. Mache ich evtl etwas falsch oder ist das nun Betriebssystem bedingt? (Decls:Code: [AUSKLAPPEN] .lib "kernel32.dll"
)
apiRtlMoveMemory(Destination*,Source,Length):"RtlMoveMemory" apiRtlMoveMemory2(Destination,Source*,Length):"RtlMoveMemory" |
||
Warbseite |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe die Frage nicht ganz. Du hast vier Tests mit verschiedenen Kombinationen von XP/Win7/B3D/B+ gemacht und das Programm hat in keiner Konstellation funktioniert und bei Gelegenheit auch noch das System abgeschossen - wie kann das nicht am Programm liegen? | ||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, du machst nichts falsch. Aber eine "virtuelle" Umgebung ist nun mal keine "echte" und wird auch mit der besten VM der Welt keine "Echte" werden. Gerade direkte Eingriffe auf den Arbeitsspeicher werden immer ein Problem der VMs bleiben.
In diesem Fall greifst du mehr als wahrscheinlich auf einen virtuellen Speicher zurück der aber auf dem Host selbst (Hardware) ganz andere Adressen hat, da kann nur Schrott raus kommen. Aus diesem Grund wird der Speicher auch normalerweise vom OS gemanagt und nicht vom User. Grund für deinen Fehler ist das VM Ihren virtuellen Ram "gemanagt" an das WirtsOS mitteilen, dieses verteilt dann die Adressen. Wenn du nun mittels Systemroutinen auf den Ram eingreifst kann dieses virtuelle System schlecht ahnen wo gerade die "richtigen" Adresses sind. Daher wird auch kein LOW LEVEL Prog in absehbarer Zeit auf virtuellen Maschinen vernünftig laufen, nur höhere APIs. ![]() cu |
||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das erklärt das mit B+ auf dem virtuellen xp, aber nicht auf win7.
Edit: @Noobody: der Code lief ja mal. zumindest laut archivlog. |
||
Warbseite |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
800*600*LockedFormat()
wäre mit B+ mitteln zumindest total daneben. Da gibt ja LockedFormat andere werte zurück |
||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die interne Funktion wird durch die im code stehende ersetzt ![]() |
||
Warbseite |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja aber schaut mal da sind Linien die schräg sind. Das passiert wenn man vertikale Linien mit einer falschen Breite anzeigt. Was die gezeigte Funktion zurückgibt ist ja nicht gleich ersichtlich. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group