我是Windows Mobile开发的新手,遇到了DLL问题。
我正在使用Assembly.LoadFrom()在我的掌上电脑上加载DLL,它失败并显示以下内容: System.IO.IOException: 找不到文件或程序集名称“MyCustom.dll”或其中一个依赖项。
DLL确实存在,我在此之前正在做一个File.Exists()。 这是我用来获取此错误的代码: 程序集asb = Assembly.LoadFrom(@“MyCustom.dll”);
有什么想法吗?
答案 0 :(得分:1)
稍微详细说明这种失败的其他可能原因。
如果您查看LoadLibrary文档,请说明以下内容:
除非模块的完整路径是 指定,Windows Embedded CE 在以下路径中搜索 模块:
. The absolute path specified by the lpLibFileName parameter. . The .exe launch directory. . The Windows directory. . ROM DLL files. . An OEM-specified search path.
以下注册表子项 指定要使用的搜索路径 LoadLibrary和CreateProcess:复制 代码
HKEY_LOCAL_MACHINE\Loader
SystemPath=multi_sz:\\path1\\
\\path2\\
仅在路径中搜索路径 正在寻找的文件不是 明确指定。
这样可以帮助理解为什么它可能无法找到dll。
如果原因无法找到DLL,那么这里有link一篇关于此问题出现的其他常见原因的文章:
可能的原因是:
- dll不是为Windows CE构建的 从Big Windows(NT,XP,Vista)获取dll时会发生这种情况 试图在Windows CE上使用它 设备
- dll不是为处理器系列构建的 当采用为不同的DLL构建的DLL时会发生这种情况 处理器比目标处理器
- dll需要加载的另一个dll不可用 当您加载的DLL然后加载另一个DLL时会发生这种情况 那个DLL时出现故障 尝试加载另一个失败的DLL。
- 如果所需的功能不在dll中。 如果系统上的dll与该系统上的dll不同,则会发生这种情况 那个lib正在构建的那个 你链接到了创建。它是 有时是使用错误的症状 适合您目标的SDK。
醇>
我发现我遇到的最常见问题是它所依赖的另一个DLL不可用或者其他DLL中的函数不可用。
答案 1 :(得分:0)
您是否为此文件提供了正确的路径?
Here是方法
的参考