Ich schreibe eine Hintergrunddienstanwendung, die Daten aus Excel 2003-Dateien automatisch lesen muss. Aber egal, was ich versuche, die Methode OlePropertyGet() führt immer zu einem EAccessViolation Fehler beim Versuch, von der Adresse "00000800" zu lesen.C++, OLE, Excel Automatisierung: EAccessviolation bei 00000800
Der Fehler tritt immer in der letzten Zeile dieses Codeausschnitt, und scheint unabhängig von dem, was Parameter der Methode empfängt:
Variant excel, workbooks;
try
{
excel = GetActiveOleObject("Excel.Application");
}
catch(...)
{
excel = CreateOleObject("Excel.Application");
}
workbooks = excel.OlePropertyGet("Workbooks");
ich auf diese einige umfangreiche Google-Suche gemacht haben, aber nichts gefunden, dass selbst ist remote hilfreich, nur this Forum Thread, wo jemand das gleiche Problem hat, aber keine Informationen über die Ursache oder Lösung gibt (es ist etwas komisch, dass der Autor an einer Stelle erwähnt, er kennt die Ursache, aber nicht sagen, was es ist !).
Ich bin offen für irgendwelche Ideen, was verursacht dies und wie dieses Problem zu lösen, sondern auch alternative Ansätze zur Excel OLE-Automatisierung.
Wenn Ihre Anwendung versucht, 0x800-Adresse zu lesen, dies nicht zu gut aussieht. – ALOToverflow