|
|
|
Как расширить стэк?
|
|||
|---|---|---|---|
|
#18+
Привет всем! Есть прога, которая может импортировать и запускать функции из DLL Я dll-ку сделал, все работает, только на вызове одной функции (очень большой) прога выдает stack overflow Можно как-то расширить стэк или использовать другой? Пока в голову приходит только создание потока с большим стэком и выполнения в нем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 08:04 |
|
||
|
Как расширить стэк?
|
|||
|---|---|---|---|
|
#18+
Dima TПривет всем! Есть прога, которая может импортировать и запускать функции из DLL Я dll-ку сделал, все работает, только на вызове одной функции (очень большой) прога выдает stack overflow Можно как-то расширить стэк или использовать другой? Пока в голову приходит только создание потока с большим стэком и выполнения в нем. на чем пишешь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 08:26 |
|
||
|
Как расширить стэк?
|
|||
|---|---|---|---|
|
#18+
JibSkeartна чем пишешь ? DLL - MS VC 6.0 прога из которой DLL вызывается чужая - ничего не поменять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 09:12 |
|
||
|
Как расширить стэк?
|
|||
|---|---|---|---|
|
#18+
Еще вопрос: У меня код функции примерно такой Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 09:38 |
|
||
|
Как расширить стэк?
|
|||
|---|---|---|---|
|
#18+
Память под переменные выделяется из стека, также, по умолчанию, параметры функции размещаются тоже в стеке. Используй динамический массив для хранения промежуточных результатов. + Параметры для внутренних функций передавать не по значению (через стек), а по ссылке либо указателями. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 10:07 |
|
||
|
Как расширить стэк?
|
|||
|---|---|---|---|
|
#18+
размер стека устанавливается в настройках проекта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 10:13 |
|
||
|
Как расширить стэк?
|
|||
|---|---|---|---|
|
#18+
Вариант 1: Выдели нужный объём памяти и перенеси стек туда. Вариант 2: В заголовке файла(который вызывает dll) есть параметр Stack Reserv Size. Можно с ним поиграться. Только это надо до запуска делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 11:04 |
|
||
|
Как расширить стэк?
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. Проблема с руками :) Нашел косяк. У проги, куда импортирую, есть некоторые проблемы с именами импортируемых функций (в DLL менял имя несколько раз), и в итоге получилось что функция-оболочка над моей DLL-функцией и DLL-функция оказались одноименными. В результате все рекурсивно зациклилось. Переименовал - заработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2006, 12:05 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33726338&tid=2031298]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 352ms |

| 0 / 0 |
