Я использую C++ для создания плагина .XLL для Microsoft Excel с помощью XLW library. Моя операционная система - 64-разрядная версия Windows 7 с 32 ГБ оперативной памяти; но мой Excel - это Excel 2010, 32-битная версия.Сколько памяти может иметь плагин Excel XLL?
Проверка с помощью GlobalMemoryStatusEx, это показывает, что код в XLL могут видеть только около 1200 МБ виртуальной памяти доступно (от ullAvailVirtual
в struct _MEMORYSTATUSEX), несмотря на то, доступной физической памяти (ullAvailPhys
) составляет около 23 ГБ.
Поскольку мой код требует довольно много памяти (около 100 Мбайт на поток вычислений), после выдачи 12 потоков он попадает в плохую ошибку распределения.
Есть ли способ увеличить доступную память?
- Это ограничение Excel
XLL
плагин? В консольном приложенииGlobalMemoryStatusEx
сообщает около 2034 МБ виртуальной памяти. - Это ограничение
XLW library
? - Это ограничение
32-bit Excel
?
Вы имеете в виду, что мой 'A.XLL' по-прежнему является 32-разрядной DLL, но он выполняет отдельный (возможно, 64-разрядный) процесс' B.exe' и имеет 32-битный Excel' - '32-бит A.XLL' -' 64-битная связь B.exe'? – athos
@athos: Да, именно это. –
Если да, то как мог 'A.XLL' эффективно разговаривать с' B.exe'? Скорость - моя забота. – athos