在本机上LoadLibrary没有问题可是把他放到没有安装VC的虚拟机上,始终加载失败,GetLastError返回值为3801155
把他放在exe同一路径,并且使用了GetModuleFileName获取绝对路径,还是不能加载成功1、请问这样的问题可能是怎么引起的,如何解决?
2、GetLastError返回值为3801155,代表什么意思?

解决方案 »

  1.   

    LoadLibrary 放在 exe 同一目录下也失败?
    检查一下文件名,比如 数字 1 和字母 l 的啥的别弄混了。
    你看返回的 HANDLE 是为 NULL 么?
      

  2.   

    可能是调用的DLL依赖其它的DLL文件。而运行机器上没有。
      

  3.   

    使用DEPENDS.EXE检测下。
    在C:\Program Files\Microsoft Visual Studio\COMMON\Tools目录下。
      

  4.   

    1、比如 数字 1 和字母 l 的啥的别弄混了,这个问题应该不存在,否则本机上也会失败
    2、是在返回的HANDLE 为NULL后才调用的GetLastError()
      

  5.   

    你把dll要做成安装文件的形式,也就是发布版本(release)这样,它会把所有的引用库全部包含上,可以不依赖于编译环境独立运行。
      

  6.   

    用静态库方式连接看看应该是缺少那个文件了和loadlibrary没关系
      

  7.   

    可能是你说的问题,通过隐式加载后,在虚拟机上运行不了,
    提示信息为”应用程序正常初始化失败“那么如何查看是少哪个文件了呢?3楼朋友说的可以用DEPENDS.EXE检测,可是机子上没这个
      

  8.   

    除了查看依赖的DLL以外,如果是VC++ 2005及其以上编译的DLL,需要安装vcredist来保证DLL调用的环境.
      

  9.   

    VS2008 中的 depends.exe 在哪里? 答案是:没有。据说这个程序被Windows SDK组评估为质量不合格,所以下岗了。 去官网上下载,目前最新是2.2   http://www.dependencywalker.com/depends22_x86.zipvs2008的你下了自己看