Создал ActiveX из своего компонента. И то и другое нормально работает.
Для загрузки большой картинки bmp формата (карта местности) использую
Bitmap.LoadFromFile(<Путь к файлу>)
С файлами порядка 100 MB и размером 10000 на 10000 пикселей и компонент и ActiveX работают прекрасно.
Но с файлами порядка 300 MB и размером 17000 на 17000 пикселей компонент работает все также прекрасно, а созданный из него ActiveX при загрузки файла вылетает.
Создается впечатление, что у ActiveX-а есть какие-то ограничения на ресурсы памяти. Можно ли эти ограничения расширить или обойти?
Re: У ActiveX ограничение на ресурсы памяти. Как бороться?
Здравствуйте, miklek, Вы писали:
M>Создал ActiveX из своего компонента. И то и другое нормально работает. M>Для загрузки большой картинки bmp формата (карта местности) использую
M> Bitmap.LoadFromFile(<Путь к файлу>)
M>С файлами порядка 100 MB и размером 10000 на 10000 пикселей и компонент и ActiveX работают прекрасно. M>Но с файлами порядка 300 MB и размером 17000 на 17000 пикселей компонент работает все также прекрасно, а созданный из него ActiveX при загрузки файла вылетает. M>Создается впечатление, что у ActiveX-а есть какие-то ограничения на ресурсы памяти. Можно ли эти ограничения расширить или обойти?
что значит "вылетает"? ставишь точку там где вылетает и смотришь call stack
Re: У ActiveX ограничение на ресурсы памяти. Как бороться?
99% что проблема никак не связана с ActiveX (нету у них, кстати, никаких специальных ограничений на память).
17000x17000 пикселей помноженые на 4 байта на пиксель (если картинка 24-х или 32-х битная) дают больше гигабайта адресного пространства.
У тебя просто не хватает виртуальной памяти одним куском. Бей картинки на куски или бери 64-х битную ось.