У меня есть программа на c #, использующая dll, управляемую c ++ / cli. DLL содержит много устаревшего кода, состоящего из нескольких окон win32.
Проблема в том, что окнам в dll требуется немного больше стека, чем в среднем кашель . Поскольку это не фоновые процессы, а Win32 API, мне нужно увеличить размер стека потока GUI (по крайней мере, я думаю, что Win32 API в DLL будет использовать основной процесс GUI).
Так что мне нужен способ увеличить размер потока GUI в процессе c #.
Так как я не нашел никаких настроек для достижения этой цели, я попытался редактировать / STACK из командной строки, которая работает. Проблема в том, что он работает только в командной строке, если я пытаюсь ввести его как шаг после сборки, по какой-то причине размер стека двоичного файла не изменяется, даже если шаг после сборки выполняется правильно и не выдает ошибку :(
editbin.exe /STACK:2097152 $(TargetPath)
(Editbin.exe находится в пути, и в окне вывода нет ошибок)
Так как мне получить больший размер стека для моей c ++ dll?
[Update]
Я заметил проблему с использованием editbin.exe.
Это не работает ни в командной строке, ни в качестве шага после сборки:
editbin.exe /STACK:2097152 c:\some\path\bin\release\app.exe
Это работает в командной строке, но не как этап сборки:
editbin.exe /STACK:2097152 app.exe
Но мне нужно, чтобы он работал как шаг после сборки. Я попытался поместить его в командный файл, echo'd, чтобы убедиться, что вызов и рабочий каталог в порядке, но все равно это не работает. Странно.