DLLImport无法加载DLL

我有代码来调用用C编写的DLL。此代码在我们拥有Windows7的开发人员计算机上工作正常。 但是它在我们拥有Windows Embedded Standard OS的Kiosk上出现以下异常:“无法加载DLL'xxx.dll':指定的模块找不到(来自HRESULT的异常:0x8007007E)”。

我的DLL和我以前一样在我的工作目录中。 我的项目设置没有改变,工作目录被正确指定。 我尝试用从Kernel.DLL导出的函数设置“DllImport”路径,但它无能为力。 有什么可以改变造成这个错误?


使用像DependencyWalkier这样的ome工具加载该DLL http://www.dependencywalker.com/并检查DLL需要哪些外部模块。 可能发生的情况是,您的W7上没有Kiosk机器上存在的东西。 如果我没有记错,如果.Net没有找到所有的依赖关系,它会引发同样的异常。

该工具将允许您查看DLL引用的本机模块。 如果您设法在Kiosk上运行该工具,它会向您报告所有缺失的依赖关系。 如果有的话 - 你有理由。 如果没有 - 好吧..然后乐趣又开始:)

顺便说一句。 堆栈跟踪中有趣的事情? Btw2。 你尝试过启用fusionlog吗? 嗯..不。它是本地DLL,所以Depends应该找到原因。 我敢打赌这是运行时版本。 AAAh正确---这个DLL完全是你的还是不是? 如果是你的话,是否使用DEBUG或RELEASE模式构建本地DLL? 如果调试,然后在Release中重新编译。 这是一个很常见的陷阱。

链接地址: http://www.djcxy.com/p/44445.html

上一篇: DLLImport failing to load DLL

下一篇: Asp.Net C# DllImport problem