c和python混合编程ctypes不是有效的win32应用_Ctypes抛出“WindowsError:[Error 193]%1不是有效的Win32应用程序”,但它不是32/64位问题...
在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位问题...相关推荐
- android与python交互_Android与Python混合编程
前言 早在2017年的时候,出于业余兴趣,我就开始研究关于Python移植到Android上的实现方案,我一直希望能实现Android与Python的混合编程,并为此写了一系列博客,我希望借助JNI技 ...
- python利器怎么编程-C++和Python混合编程的利器
Python是一种简单易学.功能强大的编程语言,它有高效率的高层数据结构,能简单而有效地实现面向对象编程.Python简洁的语法.对动态输入的支持和解释性语言的本质,使得它在很多领域的大多数平台上都是 ...
- python和vb的代码可以通用吗-VB6+Python混合编程(COM组件)(转)
VB6+Python混合编程(COM组件) 0.2572018.05.10 16:01:23字数 553阅读 3725 Python的方便不用说,VB6做GUI的简单程度更不用说.二者混合编程的需求一 ...
- qt如何用python结合_在Qt(C++)中与Python混合编程
一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...
- python优点是代码库支持、灵活_C++和Python混合编程的利器
Python是一种简单易学.功能强大的编程语言,它有高效率的高层数据结构,能简单而有效地实现面向对象编程.Python简洁的语法.对动态输入的支持和解释性语言的本质,使得它在很多领域的大多数平台上都是 ...
- Python 3.7.0 程序下载 32/64位含安装教程|支持Win10
软件简介 Python3.7.0 是一种被广大从业者广泛使用的通用型设计语言.该软件提供了丰富全面的模块,并支持sockets编程,可以非常方便快速地开发分布式应用程序,python3 ...
- c/c++ 32/64位兼容编程
说明 在工作中,使用到的平台较多,交叉编译工具链有32位的也有64位的. 所谓32位/64位是硬件层次的概念,是指处理单元的三大总线(数据总线,控制总线,地址总线)是32根导线还是64根导线,每一根导 ...
- visual studio code Python终端运行_微软常用运行库合集32/64位只需一键全部安装
微软常用运行库合集32/64位这些运行库都是采用Microsoft Visual Studio 20XX编写的软件必须使用的公用DLL运行库,相当于程序的字典文件:只需要一键全部安装,堪称装机必备神器 ...
- android 键编译,Android 音视频学习系列 (四) 一键编译 32/64 位 FFmpeg 4.2.2
前言 2020/5/20 增加了硬件解码编译脚本 编译环境 Centos + NDK20b + FFmpeg4.2.2 + Android-21/16 2020/4/26 更新了编译 64 位脚本 编 ...
最新文章
- 机器学习-算法背后的理论与优化(part2)--广义线性模型
- Java核心篇之多线程---day1
- 2021宣城职业技术学院对口高考成绩查询,2021年宣城职业技术学院高考录取通知书查询 通知书什么时候可以收到...
- Android对system_server中binder的ioctl调用拦截
- 六石管理学:半弹性工作时间
- mysql链接 及备份
- mysql 内置函数大全 mysql内置函数大全
- 2.4 深入理解PackageManagerService
- 不忘初心,能偷懒就偷懒:C#操作Word文件
- 浅谈我对思维导图的认识
- 学生登录系统 过程及结果
- 硅芯思见:“软约束”到底有多“软”
- 羽毛球单打比赛中谁先发球以及在哪个区域发球?
- 服务器搭建微信会员卡系统,智络会员管理系统如何与微信对接
- 云南2018年GDP增长8.9% 较2017年增长速度有所下降
- SCALABILITY可伸缩性和EXTENSIBILITY可扩展性的区别
- AndroidQ_默认数据连接的建立
- 9 个你应该知道的支付系统开源项目
- 推荐收藏!10大程序员必备生产力工具
- webpack基础教程