无法加载DLL'coredll.dll':找不到指定的模块.(在Windows XP上)

Gop*_*ath 4 compact-framework opennetcf

感谢StackOverflow的大师们.你们真棒.我发布了关于在Compact框架应用程序检测空闲时间的问题,并且很快得到了答案.当我在Windows XP开发框中尝试建议的解决方案时,我收到此错误

无法加载DLL'coredll.dll':找不到指定的模块.(在Windows XP上)

谷歌搜索了一段时间后,我知道OpenNETCF库正在尝试启动coredll.dll来检测空闲时间,但这个dll只用Windows Mobile OS.由于我们正在Windows XP PC上开发应用程序并且现在无法访问Windows CE设备,因此我们对此问题感到震惊.

有没有办法在Windows XP上获取coredll.dll?这个问题的任何其他解决方案?

更新:我们的目标是在Windows Mobile 6 Professional上运行设备的应用程序

cta*_*cke 11

我糊涂了.问题是专门针对Windows CE的Compact Framework.如果您还没有目标硬件,请使用模拟器.

这种特定情况下,SDF不是P/Invoking来执行此操作,而是使用IMessageFilter实现.你可以轻松地为桌面做同样的事情.

但话虽如此,您根本无法开发针对XP的CF应用程序.这意味着,如果您使用完整框架创建应用程序,瞄准桌面,并期望它在您获得CE设备时运行,那么您会感到非常惊讶.如果针对两个操作系统都是设计目标,那么还有很多工作要做,而且大多数UI内容都不可转移(我实际上建议为两个目标和常见的业务逻辑使用不同的UI程序集).

EDIT1

我想更全面地回答"我可以为我的桌面获取coredll.dll吗?"的问题.答案是响亮的"不".这有多种原因不起作用(它在ROM中,它依赖于硬件,它实际上不是一个文件,而是固定到就地执行,它是针对不同的OS编译的,它可能被编译为完全不同的处理器等).

你有几个选择.您可以尝试创建一个桌面版本的coredll.dll,它导出您想要的所有函数,并将它们代理到kernel32,user32等DLL.这是一大堆工作(在那里,尝试过).

您可以尝试编写适用于这两个平台的代码.可行,但也很具挑战性.

缺点是,除非你绝对必须同时瞄准两者,否则你不想尝试.获取模拟器,虚拟PC或某种评估系统,并以此为目标.