none
C++动态链接库在WIN7可以被调用而在XP下就不可以被调用 RRS feed

  • 问题

  • 小弟最近在做JAVA调用C++DLL的一个项目,但是发现一个很奇怪的问题,在WIN7系统下C++的DLL可以用JNI封装后调用,但是在XP下怎么封装都会出来都会返回一个错误 Invalid access to memory location。总是找不到一个合适的解决方法,后来试着用PYTHON去调用C++DLL发现也有这种一个问题,在WIN7可以调用,但是到XP下面就不能调用了返回的错误 代码也是WindowsError : [Error 998] Invalid access to memory location。有谁遇到这种情况么,是因为WIN7跟XP系统有一定的差别才会出现这样的问题么?

    2012年12月13日 8:45

全部回复

  • 你好,由于这是一个涉及 Windows XP 的问题,所以将其由一般性问题讨论组移动至 Windows XP 组。
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "cau_zpz"
     
    小弟最近在做JAVA调用C++DLL的一个项目,但是发现一个很奇怪的问题,在WIN7系统下C++的DLL可以用JNI封装后调用,但是在XP下怎么封装都会出来都会返回一个错误 Invalid access to memory location。
     
     
    2012年12月13日 22:35
    版主
  • 不同版本的系统对 C++ 调用 DLL 应该没有什么差别。这个问题可能与不同的系统具备的 C++ 开发环境版本差异有关。
     
    尝试在 Windows XP 中安装最新版本的 VC++ Redistributable。
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "cau_zpz"
     
    小弟最近在做JAVA调用C++DLL的一个项目,但是发现一个很奇怪的问题,在WIN7系统下C++的DLL可以?肑NI封装后调用,但是在XP下怎么封装都会出来都会返回一个错误 Invalid access to memory location。
     
     
    2012年12月13日 22:47
    版主
  • Visual C++ 2010 Redistributable(Windows XP 可用)下载:
     
    http://www.microsoft.com/zh-cn/download/details.aspx?id=5555
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    不同版本的系统对 C++ 调用 DLL 应该没有什么差别。这个问题可能与不同的系统具备的 C++ 开发环境版本差异有关。
    尝试在 Windows XP 中安装最新版本??VC++ Redistributable。
     
     
    2012年12月16日 21:50
    版主
  • 非常感谢你的回复,我试了下,还是有问题。

    生成DLL是用的VS2010 C++,生成DLL用C++是可以调用,只是用别的语言就不能调用了。

    2012年12月17日 7:31
  • 那你有在别的 Windows XP 计算机上试过么?是否所有的 Windows XP 都有问题?
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "cau_zpz"
     
    非常感谢你的回复,我试了下,还是有问题。
    生成DLL是用的VS2010 C++,生成DLL用C++是可以调用,只是用别的语言就不能调用了。
     
     
    2012年12月17日 21:37
    版主
  • 在多台XP的机器上面试验过,真机跟虚拟机都有试,也是同样的问题。

    不过我忘了说一个问题,就是我们本来的代码是在VS2008上面开发的,用VS2008产生的DLL用不同语言是可以调用的,现在代码迁移到VS2010上了,同时一些依赖的第三方库也做了一些相应的改变,应该算是升级吧,就是比之前的版本升级了些。我想有没有可能是编译器的问题呢,可XP下面也是可以用VS2010的啊,真的是很困惑。

    2012年12月18日 3:27
  • 有可能是编译器的问题,从 VS2008 迁移至 VS2010 的过程是在什么系统中进行的呢?
     
    虽说 Windows XP 也支持 VS2010,但需要安装配置相关的开发工具环境。估计还是 Windows XP 缺少 Windows 7 已安装的部分 VS2010 组件。
     
    请尝试把 Windows 7 安装过的所有 VS2010 组件都在 Windows XP 中重新安装一遍。
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论?骋曰袢∽罴延没逖椤?
     
    本帖是回复帖,原帖作者是楼上的 "cau_zpz"
     
    在多台XP的机器上面试验过,真机跟虚拟机都有试,也是同样的问题。
    不过我忘了说一个问题,就是我们本来的代码是在VS2008上面开发的,
     
     
    2012年12月18日 21:52
    版主
  • vs2008是在XP下面做的,VS2010是在WIN7下面做的,我安装VS2010的环境,只是安装了VS2010的安装程序并没有做别的组件的安装
    2012年12月19日 9:09
  • 建议把 Windows 7 安装过的所有 VS2010 组件都在 Windows XP 中重新安装一遍,然后再试试。
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "cau_zpz"
     
    vs2008是在XP下面做的,VS2010是在WIN7下面做的,我安装VS2010的环境,只是安装了VS2010的安装程序并没有做别的组件的安装
     
     
    2012年12月19日 21:56
    版主
  • 还有你提到的倚赖的第三方库,具体都有哪些?Windows XP 是否具有相应的第三方库文件?
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "cau_zpz"
     
    不过我忘了说一个问题,就是我们本来的代码是在VS2008上面开发的,用VS2008产生的DLL用不同语言是可以调用的,现在代码迁移到VS2010上了,同时一些依赖的第三方库也做了一些相应的改变,应该算是升级吧
     
     
    2012年12月20日 21:31
    版主
  • 请问这个问题有何进展吗?是否确定 Windows XP 已安装 Windows 7 具有的所有 VS2010 组件并具有所需的全部第三方库文件?
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "Alexis Zhang"
     
    还有你提到的倚赖的第三方库,具体都有哪些?Windows XP 是否具有相应的第三方库文件?
     
     
    2012年12月25日 22:32
    版主