Wir haben eine Windows-Anwendung (. NET, VS2010), die eine alte eingewickelte ActiveX-Steuerelement verwendet (VSPrinter 8 von ComponentOne, um genau zu sein. Vsprint8.ocx). Dies behandelt alle unsere Druck- und Druckvorschauen. Wenn wir unsere Anwendung auf einer neuen Instanz von Win7 auf einer VM (32 Bit) bereitstellen und ausführen und etwas versuchen, dieses Steuerelement aufzurufen, wird der folgende Fehler angezeigt:"Versuch, geschützten Speicher zu lesen oder zu schreiben" Fehler auf Win7 - ActiveX-Steuerelement Fehler
"Versuch, geschützten Speicher zu lesen oder zu schreiben. Dies ist oft ein Hinweis darauf, dass anderer Speicher beschädigt ist. "
Es funktioniert weiterhin gut unter Windows XP. Interessanterweise funktioniert die Anwendung, wenn wir DEP auf der Ziel-VM deaktivieren (systemweit auf AlwaysOff gesetzt). Aber wenn wir DEP nur für die ausführbare Datei deaktivieren, die den OCX verwendet, funktioniert es nicht.
Irgendwelche Ideen? Vielen Dank!
Vergessen Sie nicht, Ihre Antwort als Antwort auf Ihre Frage zu akzeptieren. ;> – dthorpe
Ein weiterer interessanter Knick ist auf dem TFS Team Build Server aufgetreten. Msbuild konnte die Visual Studio-Umgebungsvariable (DevEnvDir) nicht auflösen, wodurch der fortlaufende Integrationsbuild fehlschlägt. Um dies zu umgehen, haben wir eine Umgebungsvariable auf Systemebene hinzugefügt, um einen globalen Wert von DevEnvDir festzulegen. Der Wert von DevEnvDir ist "C: \ Programme (X 86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE" auf X 64 oder "C: \ Programme \ Microsoft Visual Studio 10.0 \ Common7 \ IDE" auf 32 Bit. Es schien irgendwie hacky, aber es funktionierte. – Booberry