當我調用本機DLL時,從我的應用程序中收到臭名昭着的0xC00000FD
(堆棧溢出)異常。這是從Windows CE 5(SH4處理器)上的託管C#應用程序完成的。使用相同的託管應用程序爲Windows XP編譯相同的DLL,並且一切正常(無溢出)。 DLL中的例程正在做一些非常複雜的遞歸,最終導致溢出,但它再次在PC上工作正常。從託管應用程序調用的本地DLL中調用堆棧溢出
看起來我可能只需要在構建DLL時調整堆棧大小?我相信CE和XP的默認堆棧大小在使用Visual C編譯器(我使用Visual Studio 2005,如果有的話)時都是1MB。如果他們都默認爲相同的大小,但我不確定爲什麼一個會溢出而另一個不會。我試着用/ F編譯器標誌和/ STACK鏈接器標誌調整堆棧大小,但是這似乎沒有做任何事情。我也不完全清楚,我可以在DLL中指定堆棧大小,但是可執行文件必須設置它。但是,如果是這種情況,我將如何調整我的託管進程調用到本機DLL時使用的堆棧大小?