我正在编写一个小应用程序来测试OpenNETCF库加载,并偶然发现了这个奇怪的消息
Unable to load DLL 'coredll.dll' : the specified module could not be found
我在Windows Embedded 7 Compact瘦客户机上使用Compact Framework 3.5。
代码是
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using OpenNETCF.Threading;
namespace Windows7EmbeddedTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("Starting the test");
bool notRunning;
NamedMutex mutex = new NamedMutex(false, "myappname", out notRunning);
MessageBox.Show("test went well!");
}
}
}
任何想法如何解决这个问题?我在Windows Embedded Compact 7瘦客户机上搜索了coredll.dll,但没有出现任何问题。我的理解是它是Windows CE设备不可或缺的一部分。那么为什么OpenNETCF无法在Windows Embedded Compact 7机器上找到它呢?我需要手动下载/安装此DLL吗?注册吗? 如果Windows Embedded Compact 7附带了它,那么寻找它的途径是什么?
答案 0 :(得分:1)
您是否确信您的瘦客户端设备运行的是Windows Embedded Compact(Windows CE)而不是Windows Embedded Standard(WES)?
我问的原因是因为coredll.dll是Windows CE操作系统的基础部分。这是桌面的kernel32.dll和user32.dll(以及其他几个)的模拟全部包装成一个。拥有不包含coredll.dll的Windows CE操作系统是不可能的。
通常它是一个隐藏文件,所以它不会在资源管理器中显示,除非你“显示隐藏文件”或使用类似远程文件查看器的东西,但.NET加载程序找不到它的事实让我怀疑它不是在那里,这反过来让我相信你在运行WES而不是CE。