在Ctypes中加载Windows DLL时遇到问题,引发错误:WindowsError: [Error 193] %1 is not a valid Win32 application

在我的例子中,它是一个32位DLL,在windows7 64位上用VS2012构建,在我的开发机器上我可以很好地加载它。我使用dumpbin /headers检查了它是否为32位:

^{pr2}$

当我试图通过Ctypes在生产虚拟机(也是Windows7 64位)上加载相同的DLL时,会出现问题。我要做的是:from ctypes import *

self.dll = CDLL(dllabspath)

我得到:File "C:\Users\user\Desktop\WinPython-32bit-2.7.10.1\.....\__init__.py", line 365, in __init__

self._handle = _dlopen(self._name, mode)

WindowsError: [Error 193] %1 is not a valid Win32 application

从其他问题来看,我已经试了好几种方法。在This、this、this和this问题表明我的环境必须相同,即32位Python,32位DLL。这是我的开发系统和我正在测试的虚拟机上的情况。在这两个版本中,我使用的是最新版本的32位WinPython。它在dev机器上工作,在VM上失败。

Here,它与g++相关,并且依赖于旧的visualstudio运行时。我用VS2012编译了所有的东西,所以我不认为这在这里适用。对需要MSVCR80.dll的第三方库存在延迟加载依赖项,但它是延迟加载且从不调用的。>P>我也在目标机上安装了VisualC++ 32位运行时。

This建议DLL需要导出一个C接口,它确实这样做了。

我知道DLL的文件路径/文件名是正确的,就像以前一样,存在缺少DLL依赖项的问题,在那里我得到了一个Windows弹出窗口。这些都不见了。

这个错误非常普遍,相当隐晦。由于它在同一Python env中的dev机器上工作,我假设它与一些只有visualstudio安装才能提供给我的依赖关系有关?在

我怎样才能正确地解决这个问题?在

c和python混合编程ctypes不是有效的win32应用_Ctypes抛出“WindowsError:[Error 193]%1不是有效的Win32应用程序”,但它不是32/64位问题...相关推荐

  1. android与python交互_Android与Python混合编程

    前言 早在2017年的时候,出于业余兴趣,我就开始研究关于Python移植到Android上的实现方案,我一直希望能实现Android与Python的混合编程,并为此写了一系列博客,我希望借助JNI技 ...

  2. python利器怎么编程-C++和Python混合编程的利器

    Python是一种简单易学.功能强大的编程语言,它有高效率的高层数据结构,能简单而有效地实现面向对象编程.Python简洁的语法.对动态输入的支持和解释性语言的本质,使得它在很多领域的大多数平台上都是 ...

  3. python和vb的代码可以通用吗-VB6+Python混合编程(COM组件)(转)

    VB6+Python混合编程(COM组件) 0.2572018.05.10 16:01:23字数 553阅读 3725 Python的方便不用说,VB6做GUI的简单程度更不用说.二者混合编程的需求一 ...

  4. qt如何用python结合_在Qt(C++)中与Python混合编程

    一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...

  5. python优点是代码库支持、灵活_C++和Python混合编程的利器

    Python是一种简单易学.功能强大的编程语言,它有高效率的高层数据结构,能简单而有效地实现面向对象编程.Python简洁的语法.对动态输入的支持和解释性语言的本质,使得它在很多领域的大多数平台上都是 ...

  6. ​Python 3.7.0 程序下载 32/64位含安装教程|支持Win10

    软件简介         Python3.7.0 是一种被广大从业者广泛使用的通用型设计语言.该软件提供了丰富全面的模块,并支持sockets编程,可以非常方便快速地开发分布式应用程序,python3 ...

  7. c/c++ 32/64位兼容编程

    说明 在工作中,使用到的平台较多,交叉编译工具链有32位的也有64位的. 所谓32位/64位是硬件层次的概念,是指处理单元的三大总线(数据总线,控制总线,地址总线)是32根导线还是64根导线,每一根导 ...

  8. visual studio code Python终端运行_微软常用运行库合集32/64位只需一键全部安装

    微软常用运行库合集32/64位这些运行库都是采用Microsoft Visual Studio 20XX编写的软件必须使用的公用DLL运行库,相当于程序的字典文件:只需要一键全部安装,堪称装机必备神器 ...

  9. android 键编译,Android 音视频学习系列 (四) 一键编译 32/64 位 FFmpeg 4.2.2

    前言 2020/5/20 增加了硬件解码编译脚本 编译环境 Centos + NDK20b + FFmpeg4.2.2 + Android-21/16 2020/4/26 更新了编译 64 位脚本 编 ...

最新文章

  1. 机器学习-算法背后的理论与优化(part2)--广义线性模型
  2. Java核心篇之多线程---day1
  3. 2021宣城职业技术学院对口高考成绩查询,2021年宣城职业技术学院高考录取通知书查询 通知书什么时候可以收到...
  4. Android对system_server中binder的ioctl调用拦截
  5. 六石管理学:半弹性工作时间
  6. mysql链接 及备份
  7. mysql 内置函数大全 mysql内置函数大全
  8. 2.4 深入理解PackageManagerService
  9. 不忘初心,能偷懒就偷懒:C#操作Word文件
  10. 浅谈我对思维导图的认识
  11. 学生登录系统 过程及结果
  12. 硅芯思见:“软约束”到底有多“软”
  13. 羽毛球单打比赛中谁先发球以及在哪个区域发球?
  14. 服务器搭建微信会员卡系统,智络会员管理系统如何与微信对接
  15. 云南2018年GDP增长8.9% 较2017年增长速度有所下降
  16. SCALABILITY可伸缩性和EXTENSIBILITY可扩展性的区别
  17. AndroidQ_默认数据连接的建立
  18. 9 个你应该知道的支付系统开源项目
  19. 推荐收藏!10大程序员必备生产力工具
  20. webpack基础教程

热门文章

  1. 基于easyx的c++贪吃蛇
  2. 如何将多个PDF的首页整合成一个单独的PDF
  3. 穿什么样的丝袜好看?
  4. arp 绑定mac地址
  5. IJCAI 阿里论文 | 基于改进注意力循环控制门 品牌个性化排序升级
  6. vscode连接虚拟机远程连接不上,xshell能连接上的问题
  7. 问卷调查工具实力榜单发布
  8. 剖析品牌出海故事,行云全球汇价值凸显
  9. 转:为什么领导没时间,下属没事做?
  10. APP-PAY-06153