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