如何解决ctypes-使用dll库时出现WinError 1114
我有一个用C ++编写的代码,需要在python中使用,摘录如下:
#include "stdafx.h"
#include "geodesic_mesh.h"
#include "geodesic_algorithm_exact.h"
using namespace std;
#define API __declspec(dllexport)
extern "C" void main_new(double* points,double* faces,int num_faces,int num_vertices,int source_vertex_index,double* distances)
{
// Build Mesh
geodesic::Mesh mesh;
...
我使用以下复杂行(Windows设备,使用MinGW)对其进行编译:
g++ main.cpp -shared -o test.dll
在以下python行中:
lib = windll.LoadLibrary('./test.dll').main_new
我收到以下错误:
Windows fatal exception: access violation
Thread 0x00004aa4 (most recent call first):
File "C:\ProgramData\Anaconda3\lib\threading.py",line 300 in wait
File "C:\ProgramData\Anaconda3\lib\threading.py",line 552 in wait
File "C:\Program Files\JetBrains\PyCharm 2019.3.3\plugins\python\helpers\pydev\pydevd.py",line 142 in _on_run
File "C:\Program Files\JetBrains\PyCharm 2019.3.3\plugins\python\helpers\pydev\_pydevd_bundle\pydevd_comm.py",line 213 in run
File "C:\ProgramData\Anaconda3\lib\threading.py",line 926 in _bootstrap_inner
File "C:\ProgramData\Anaconda3\lib\threading.py",line 890 in _bootstrap
Thread 0x00004a04 (most recent call first):
File "C:\Program Files\JetBrains\PyCharm 2019.3.3\plugins\python\helpers\pydev\_pydevd_bundle\pydevd_comm.py",line 283 in _on_run
File "C:\Program Files\JetBrains\PyCharm 2019.3.3\plugins\python\helpers\pydev\_pydevd_bundle\pydevd_comm.py",line 890 in _bootstrap
Thread 0x00002498 (most recent call first):
File "C:\ProgramData\Anaconda3\lib\threading.py",line 300 in wait
File "C:\ProgramData\Anaconda3\lib\queue.py",line 179 in get
File "C:\Program Files\JetBrains\PyCharm 2019.3.3\plugins\python\helpers\pydev\_pydevd_bundle\pydevd_comm.py",line 358 in _on_run
File "C:\Program Files\JetBrains\PyCharm 2019.3.3\plugins\python\helpers\pydev\_pydevd_bundle\pydevd_comm.py",line 890 in _bootstrap
OSError: [WinError 1114] A dynamic link library (DLL) initialization routine failed
Process finished with exit code -1
我找不到该问题的解决方案,有人遇到过并成功解决了吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。