Переполнение стека в приложении C # с использованием dll c ++

У меня есть программа на C #, которая использует управляемую dll c ++ / cli. DLL содержит много унаследованного кода, состоящего из нескольких окон win32.

Проблема в том, что окнам в DLL требуется немного больше стекового пространства, чем в среднем кашляет . Поскольку это не фоновые процессы, а win32 api, мне нужно увеличить размер стека потока графического интерфейса (по крайней мере, я думаю, что win32 api в dll будет использовать основной процесс графического интерфейса).

Так что мне нужен способ увеличить размер потока графического интерфейса в процессе c #.

Поскольку я не нашел никаких настроек для достижения этого, я попробовал editbin / STACK из командной строки, и это сработало. Проблема в том, что он работает только в командной строке,

[Обновление]

Я заметил проблему с использованием editbin.exe.

Это не работает ни в командной строке, ни на этапе пост-сборки:

editbin.exe /STACK:2097152 c:\some\path\bin\release\app.exe

Это работает в командной строке, но не как сборка step:

editbin.exe /STACK:2097152 app.exe

Но мне нужно, чтобы он работал как шаг после сборки. Я попытался поместить его в пакетный файл, повторил, чтобы убедиться, что вызов и рабочий каталог в порядке, но все равно это не работает. Странно.

5
задан Sam 4 April 2011 в 13:38
поделиться