Я портирую DLL, написанную на C, из WinCE 5.0 в WinCE 6.0 на ARM target. Эта DLL вызывается программным обеспечением .NET. На WinCE5.0 все работает нормально. На WinCE6 у меня есть следующая проблема:
в InitInstance () моей DLL, я могу вызывать что угодно без проблем (например, MessageBox ()) или использует рекурсивность.
Пройдя эту точку, DLL вызывается кодом .NET. И тогда это терпит неудачу: даже аргументы, передаваемые кодом .NET, кажутся странными. Я могу вызвать MessageBox () один раз, но не могу вызвать функцию, которая вызывает MessageBox (), а затем сама вызывает: рекурсивность нарушена.
Кажется, что .NET-код использует стек не так, как мой код на C.
Я очень не знаком с миром Windows, и компания, которая предоставляет мне приложение .NET, пока не понимает, почему происходит такой сбой.
Любой указатель / подсказка / совет приветствуется!
Спасибо!