无法加载DLL'coredll.dll':找不到指定的模块。 (在Windows XP上) [英] Unable to load DLL 'coredll.dll': The specified module could not be found. (On Windows XP)

查看:846
本文介绍了无法加载DLL'coredll.dll':找不到指定的模块。 (在Windows XP上)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

感谢StackOverflow的专家。你们真棒。我在在Compact Framework应用程序上检测空闲时间并在很快就能得到答案。当我在Windows XP开发箱上尝试建议的解决方案时,出现此错误

Thanks to the gurus at StackOverflow. You guys are awesome. I posted on question on detecting idle time on a Compact framework application and got answers very quickly. When I tried the suggested solution on my Windows XP development box, I get this error


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

Unable to load DLL 'coredll.dll': The specified module could not be found. (On Windows XP)

在搜索了一段时间后,我了解到OpenNETCF库正在尝试启动coredll.dll进行检测空闲时间,但此dll仅与Windows Mobile OS一起提供。当我们在Windows XP PC上开发应用程序并且现在无法访问Windows CE设备时,我们为之震惊。

After googling for sometime I understood that OpenNETCF libraries are trying to launch coredll.dll to detect the idle time but this dll is shiped with only Windows Mobile OS. As we are developing the application on a Windows XP PC and dont have access to Windows CE device now, we are struck with the problem.

有没有办法获取coredll? Windows XP上的.dll?还有其他解决方案吗?

Is there any way to get coredll.dll on Windows XP? Any other solution to this problem?

已更新:我们将应用程序定位为Windows Mobile 6 Professional上运行的设备

Updated: we are targeting the application for device running on Windows Mobile 6 Professional

推荐答案

我很困惑。这个问题专门针对Windows CE的Compact Framework。如果您还没有目标硬件,请使用仿真器。

I'm confused. The question was specifically about Compact Framework, which is for Windows CE. If you don't have your target hardware yet, then use an emulator.

这种特定情况下,SDF不是P / Invoking这样做的,它使用的是 IMessageFilter 实现。您可以轻松地在桌面上执行相同的操作。

In this specific case, the SDF is not P/Invoking to do this, it's using an IMessageFilter implementation. You could easily do the same for the desktop.

但是,您根本无法开发针对XP的CF应用程序。这意味着,如果您使用面向桌面的完整框架创建应用程序,并期望它在获得CE设备后才能运行,那么您将感到非常惊喜。如果将两个操作系统都作为目标是一个设计目标,那么有很多工作要做,并且大多数UI内容都是不可转让的(我实际上建议为两个目标和通用业务逻辑使用不同的UI组件)。

But that said, you simply can't develop a CF application targeting XP. What that means is that if you create your app using the full framework, targeting the desktop, and expect it to just run when you get your CE device, you're in for a big surprise. If targeting both OSes is a design goal, then there's a lot of work to be done, and most UI stuff is not transferrable (I'd actually recommend using different UI assemblies for the two targets and common business logic).

EDIT1

我想更全面地回答我可以获取coredll.dll吗?在我的桌面上?答案是肯定的否。有很多原因导致此操作不起作用(它位于ROM中,取决于硬件,它实际上不是文件,但已固定以在适当位置执行,它针对不同的OS进行了编译,可能针对完全不同的处理器进行了编译等)。

I guess to more fully answer the question of "can I get coredll.dll for my desktop?" the answer is a resounding "no". There are a multitude of reasons this wouldn't work (it's in ROM, it's hardware dependent, it's not actually a file, but fixed up to execute in place, it's compiled for a different OS, it may be compiled for a totally different processor, etc).

您有两种选择。您可以尝试创建coredll.dll的桌面版本,该桌面版本导出所需的所有功能并将其代理到kernel32,user32等DLL。这是一项繁重的工作(在那儿尝试过)。

You have a couple options. You could try to create a desktop version of coredll.dll that exported all of the functions you want and proxies them to the kernel32, user32, etc DLLs. That's a boatload of work (been there, tried that).

您可以尝试编写适用于两种平台的代码。可行,但也很有挑战性。

You could try to write code that will work for both platforms. Doable, but also quite challenging.

简而言之,除非您绝对必须同时瞄准这两个目标,否则您不想尝试。获取仿真器虚拟PC 或某种评估系统,并将其定位。

The short of it is, unless you absolutely must target both, you don't want to try to. Get an emulator, virtual PC or some sort of eval system, and target that.

这篇关于无法加载DLL'coredll.dll':找不到指定的模块。 (在Windows XP上)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆