【发布时间】:2011-01-20 13:20:29
【问题描述】:
我正在将一个用 C 语言编写的 DLL 从 WinCE 5.0 移植到 ARM 目标上的 WinCE 6.0。此 DLL 由 .NET 软件调用。在 WinCE5.0 上,一切运行良好。在WinCE6上,我有以下问题:
在我的 DLL 的 InitInstance() 上,我可以毫无问题地调用任何东西(例如 MessageBox())或使用递归。
过了这一点,.NET 代码调用 DLL。然后它失败了:即使是 .NET 代码传递的参数看起来也很奇怪。我可以调用 MessageBox() 一次,但我不能调用一个调用 MessageBox() 然后调用自身的函数:递归性被破坏了。
.NET 代码使用堆栈的方式似乎与我的 C 代码不同。
我对 Windows 世界非常陌生,而为我提供 .NET 应用程序的公司还不明白为什么会出现这样的失败。
欢迎任何指针/提示/建议!
谢谢!
【问题讨论】:
-
.Net 程序集是为 Compact Framework 设计的吗?您是否在两台设备上安装了相同版本的上述紧凑框架?
标签: .net dll stack conventions callstack