Assemblerroutine bringt Rechner zum absturz
-
liegt daran weil ich darin den this pointer rein gestopft habe? aber frage wie ich direkt auf das array zugreifen kann?
-
Vielleicht auch &matrix verwenden. Aber es stimmt schon, inline Assembler ist immer ein bisschen mühsam, weil man nie so ganz sicher sein kann, was der Compiler genau damit macht.
-
hatte ich auch schon ausprobiert:
mov eax, &matrix
diese zeile macht das hier:
error C2400: inline assembler syntax error in 'second operand'; found 'AND'
-
wenn dann:
mov eax,offset matrix
oder etwa nicht?
-
bringt das hier:
error C2415: improper operand type
-
@Nobuo T
kannst du nicht helfen?
-
Hi.
Versuchs mal mit
lea eax, [matrix]
(habe gerade kein VC++ installiert, also keine Ahnung ob das funktioniert)
-
Hi,
da bekomm ich diesen Fehler:
error C2415: improper operand typedas ist so gemein
-
kann mir den keiner helfen?
-
Schonmal geguckt, was der Compiler aus deinem alten Code macht?
Ist vielleicht noch ein Ansatzpunkt.
Solange du mir hier keinen Rechner mit VC++ herzaubern kannst, bleibt dir wohl nur selber probieren und weiter warten.
-
Nobuo T schrieb:
Schonmal geguckt, was der Compiler aus deinem alten Code macht?
Ist vielleicht noch ein Ansatzpunkt.
Solange du mir hier keinen Rechner mit VC++ herzaubern kannst, bleibt dir wohl nur selber probieren und weiter warten.Hast du nun VC++? Bisher konnte ich nichts dran rausfinden
-
Ja, hast Glueck, dass mir in den Ferien so langweilig geworden ist, dass ich das Monstrum mal wieder ausgepackt habe.
Folgendes liess sich compilieren und ist zumindest nicht abgestuerzt:void CMatrix::identity (void) { const float a = 1.0f; const float b = 0.0f; _asm { lea eax, this mov ebx, a mov ecx, b //...
-
Ist aber auch nur Glückssache, dass das float array gleich am Anfang steht, und geht auch nur, solange keine virtuals da sind.