Programm auf versch. Betriebssystemen

08/18/2015 00:04 Moneypulation#1
Hallo,

mein Problem hat zwar nicht ganz was mit Coding zu tun, aber indirekt schon. Es geht nämlich darum, dass mein Programm PCs mit Windows 8 und 10 zum Absturz bringt. Bei mir mit Windows 7 funktioniert es ganz normal. Daher würde ich es gerne selbst auf Windows 8 bzw. 10 ausprobieren. Hab mir dazu auch eine vm erstellt, jedoch stürzt meine vm mit Windows 10 nicht ab, obwohl es bei einem Freund mit echtem Windows 10 PC immer abstürzt. Wie kann ich jetzt also den Fehler untersuchen, ohne mir das kostenlose Windows 10 Update zu ziehen, was ich ungern möchte? Ich möchte ja auch nicht nem Freund täglich neue Versionen schicken, damit er sie ausprobiert und sein PC dabei oft abstürzt.
08/18/2015 07:43 Syc#2
Du gehst jetzt irgendwie davon aus, dass es sicher am OS liegt. Es könnte aber auch sein, dass es an installierter Software oder an der Hardware liegt. Könntest du nicht mal einer anderen Person mit Windows 10 das Programm geben und testen lassen?

Du als Programmierer müsstest ja wissen, was im Code passiert. Überleg dir was du alles im Code machst und wo Schwierigkeiten auftreten können. Zum Beispiel: Machst du etwas, was den Arbeitsspeicher auslastet. Bei 16 GB Ram vielleicht kein Problem, bei 4 GB schon.

Lass dir den Vorgang genau Beschreiben. Also:
Was macht die Person mit dem Programm.
Wie wird es gestartet.
Wie genau stürzt er denn ab?

Damit sollte sich das Problem deutlich genauer (auf einen bestimmten Teil im Code) eingrenzen lassen.
08/18/2015 15:04 warfley#3
Nun ich gehe mal wie mein Vorposter stark davon aus dass es nicht an Windows 10 liegt, sondern daran dass, 1. Dateien oder Bibliotheken fehlen, 2. das Zugriff auf Betriebsmittel geschieht welche der andere Rechner nicht hat, oder 3. simpel aber kommt auch immer wieder vor, eine 64 Bit Executeable auf einem 32 bit Rechner. Eine weitere Möglichkeit wären Drittanwendungen, ich kann nicht sagen wie oft mir ein Virenschutzsystem schon z.B. den GDB gekilled hat, aber es war so oft dass ich danach den Vierenschutz gelöscht habe.

Wann stürzt das Programm den ab, beim start, während dem laufen, bei der Terminierung? Was geschieht zu diesem Zeitpunkt, I/O, Berechnungen oder Speicherzugriff?
Wenn du das Programm geschrieben hast baue ein Log ein, was den Lauf notiert, und beim Crash kannst du anhand der letzten geschrieben operation sehen was zuletzt funktioniert hat/wobei er gecrashed ist.

Basiert das Programm auf .Net und ist die entsprechende Version auf dem Zielgerät installiert?
Mit welcher Fehlermeldung Terminiert das Programm?
Versucht es Zugriffe auf Dateien für die möglicherweise das Programm keine Zugriffsrechte hat?
Versucht es auf Dateien zuzugreifen die womöglich wo anders im System Positioniert sind?

Quote:
Machst du etwas, was den Arbeitsspeicher auslastet. Bei 16 GB Ram vielleicht kein Problem, bei 4 GB schon.
Die Zeiten von Windows 3 sind vorbei, dass ist kein Problem mehr dank Paging
08/18/2015 18:09 YatoDev#4
Quote:
Originally Posted by warfley View Post
Nun ich gehe mal wie mein Vorposter stark davon aus dass es nicht an Windows 10 liegt, sondern daran dass, 1. Dateien oder Bibliotheken fehlen, 2. das Zugriff auf Betriebsmittel geschieht welche der andere Rechner nicht hat
Der moneyboy scheint manche skype nachrichten von mir wohl zu überlesen oder mir schlicht keine exakten antworten zu geben.
Es liegt an der GDI dll. warum dieser bug in windows 7 nicht auftritt versteh ich nicht.

Das problem habe ich auf ein paar zeilen eingegrenzt:
PHP Code:
_GDIPlus_GraphicsDrawImageRectRect($hGraphics$hImage00$iWidth$iHeight888338182)
_GDIPlus_ImageDispose($hImage
@MoneyBoy
Falls es daran nicht liegt, dann ist die funktion darunter schuld.

Ich bin auch ein bisschen selber schuld das ich das einfach noch nicht geregelt habe aber ich bin halt busy zurzeit....

Der code sollte auch funktionieren(musst du natürlich übersetzen):
PHP Code:
GetWindowRect(handleout DRAWING_RECT);
            
IntPtr hdc GetDC(handle);
            
IntPtr compatible CreateCompatibleDC(hdc);
            
IntPtr hBmp CreateCompatibleBitmap(hdcDRAWING_RECT.Right DRAWING_RECT.LeftDRAWING_RECT.Bottom DRAWING_RECT.Top);
            
SelectObject(compatiblehBmp);
            
PrintWindow(handlecompatible0);
            
shot Bitmap.FromHbitmap(hBmp);
            
DeleteDC(compatible);
            
DeleteObject(hBmp);
            
ReleaseDC(handlehdc);
            return 
shot
PS: Verwende mal _GDIPlus_GraphicsDrawImage anstatt dem von dir.

Sollte das alles nicht helfen können die anderen ja weiter mutmaßen:)
Zur Info: Der PC Stürzt nicht ab sondern Friert ein. es gibt dann keine möglichkeit das zu verhindern