2012-08-29 152 views
1

我写一个小的应用程序来测试OpenNETCF库加载并在这种奇怪的消息都有所涉猎无法加载DLL“coredll.dll中”:指定的模块找不到

Unable to load DLL 'coredll.dll' : the specified module could not be found 

我使用Compact Framework的3.5在Windows Embedded 7 Compact瘦客户机上。

的代码是

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附带它,那么寻找它的路径是什么?

回答

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。

+0

aha!就是这样。谢谢。所以只是为了澄清 - Windows Embedded Compact是下一代Windows CE,对吧?什么是WES?一个不同的分支? – sarsnake

+0

Windows Embedded Compact是Microsoft Marketing向Windows CE 7.0提供的“新名称”。 Windows Embedded Standard本质上是Windows 7,只是组件化的形式。以前的版本称为Windows XP Embedded或XPe。不知道他们会称之为下一个版本。 – ctacke

+0

@ctacke - 我面临类似的问题,但无法解决它,请帮助。 – RSB

相关问题