询问者
C++动态链接库在WIN7可以被调用而在XP下就不可以被调用

问题
-
小弟最近在做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系统有一定的差别才会出现这样的问题么?
- 已移动 Alexis ZhangMVP, Moderator 2012年12月13日 22:20 与主题更相符。 (发件人:一般性问题讨论区)
全部回复
-
你好,由于这是一个涉及 Windows XP 的问题,所以将其由一般性问题讨论组移动至 Windows XP 组。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "cau_zpz"小弟最近在做JAVA调用C++DLL的一个项目,但是发现一个很奇怪的问题,在WIN7系统下C++的DLL可以用JNI封装后调用,但是在XP下怎么封装都会出来都会返回一个错误 Invalid access to memory location。
-
不同版本的系统对 C++ 调用 DLL 应该没有什么差别。这个问题可能与不同的系统具备的 C++ 开发环境版本差异有关。尝试在 Windows XP 中安装最新版本的 VC++ Redistributable。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "cau_zpz"小弟最近在做JAVA调用C++DLL的一个项目,但是发现一个很奇怪的问题,在WIN7系统下C++的DLL可以?肑NI封装后调用,但是在XP下怎么封装都会出来都会返回一个错误 Invalid access to memory location。
-
Visual C++ 2010 Redistributable(Windows XP 可用)下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=5555--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。不同版本的系统对 C++ 调用 DLL 应该没有什么差别。这个问题可能与不同的系统具备的 C++ 开发环境版本差异有关。尝试在 Windows XP 中安装最新版本??VC++ Redistributable。
-
那你有在别的 Windows XP 计算机上试过么?是否所有的 Windows XP 都有问题?--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "cau_zpz"非常感谢你的回复,我试了下,还是有问题。生成DLL是用的VS2010 C++,生成DLL用C++是可以调用,只是用别的语言就不能调用了。
-
有可能是编译器的问题,从 VS2008 迁移至 VS2010 的过程是在什么系统中进行的呢?虽说 Windows XP 也支持 VS2010,但需要安装配置相关的开发工具环境。估计还是 Windows XP 缺少 Windows 7 已安装的部分 VS2010 组件。请尝试把 Windows 7 安装过的所有 VS2010 组件都在 Windows XP 中重新安装一遍。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论?骋曰袢∽罴延没逖椤?本帖是回复帖,原帖作者是楼上的 "cau_zpz"在多台XP的机器上面试验过,真机跟虚拟机都有试,也是同样的问题。不过我忘了说一个问题,就是我们本来的代码是在VS2008上面开发的,
- 已建议为答案 Alexis ZhangMVP, Moderator 2012年12月24日 22:16
-
建议把 Windows 7 安装过的所有 VS2010 组件都在 Windows XP 中重新安装一遍,然后再试试。--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "cau_zpz"vs2008是在XP下面做的,VS2010是在WIN7下面做的,我安装VS2010的环境,只是安装了VS2010的安装程序并没有做别的组件的安装
-
还有你提到的倚赖的第三方库,具体都有哪些?Windows XP 是否具有相应的第三方库文件?--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "cau_zpz"不过我忘了说一个问题,就是我们本来的代码是在VS2008上面开发的,用VS2008产生的DLL用不同语言是可以调用的,现在代码迁移到VS2010上了,同时一些依赖的第三方库也做了一些相应的改变,应该算是升级吧
-
请问这个问题有何进展吗?是否确定 Windows XP 已安装 Windows 7 具有的所有 VS2010 组件并具有所需的全部第三方库文件?--Alexis Zhanghttp://mvp.support.microsoft.com/profile/jiehttp://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。本帖是回复帖,原帖作者是楼上的 "Alexis Zhang"还有你提到的倚赖的第三方库,具体都有哪些?Windows XP 是否具有相应的第三方库文件?