我有一个使用 c++/cli 托管 dll 的 C# 程序。该dll包含大量遗留代码,由相当多的win32窗口组成。
问题是,dll 中的窗口需要比平均水平多一点的堆栈空间cough。由于这些不是后台进程,而是 win32 api,我需要扩大 GUI 线程的堆栈大小(至少我认为 dll 中的 win32 api 将使用主 gui 进程)。
所以我需要一种方法来扩大 C# 进程中 GUI 线程的大小。
由于我发现没有设置可以实现此目的,因此我尝试从命令行编辑 bin /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
但我需要它作为构建后步骤。我尝试将其放入批处理文件中,进行回显以确保调用和工作目录正常,但它仍然不起作用。奇怪的。