Я пишу приложение фоновой службы, которое должно автоматически считывать данные из файлов Excel 2003. Но что бы я ни пытался, метод OlePropertyGet () всегда приводит к ошибке EAccessViolation при попытке чтения с адреса «00000800».
Ошибка всегда возникает в последней строке этого фрагмента кода и кажется независимой от того, какой параметр получает метод:
Variant excel, workbooks;
try
{
excel = GetActiveOleObject("Excel.Application");
}
catch(...)
{
excel = CreateOleObject("Excel.Application");
}
workbooks = excel.OlePropertyGet("Workbooks");
Я провел обширный поиск в Google по этому вопросу, но не нашел ничего, что даже отдаленно помогло бы, только в этой ветке форума, где у кого-то есть такая же проблема, но не дает никакой информации о причине решение (довольно забавно, что в какой-то момент автор упоминает, что знает причину, но не говорит, что это такое!).
Я открыт для любых идей относительно того, что вызывает это и как решить эту проблему, но также для альтернативных подходов к автоматизации OLE Excel.