使用ctypes调用C DLL函数不起作用

时间:2017-02-10 22:36:40

标签: python c++ visual-studio dll ctypes

我试图在Windows上的Visual Studio中调用我在Python中创建的C dll。

这是头文件

#pragma once

#ifdef MYCLIB_EXPORT
#define MYCLIB_API extern "C" __declspec(dllexport)
#else
#define MYCLIB_API extern "C" __declspec(dllimport)
#endif

MYCLIB_API int PrintStuff();

源文件:

#include "stdafx.h"
#include "MyCLib.h"
#include <stdio.h>

MYCLIB_API int PrintStuff()
{
    printf("Stuff");
    return 1;
}

我正在构建64位调试,我在预处理器属性中定义了MYCLIB_EXPORT。我还将MyCLib.dll放在Python脚本的目录中。

我在同一个Visual Studio解决方案中创建了一个Python项目,并且具有以下代码:

import ctypes
from ctypes import *

lib = ctypes.WinDLL('MyCLib.dll')

#dll = cdll.LoadLibrary('MyCLib.dll')

print "Done"

当我运行脚本时,我收到错误:[Error 193] %1 is not a valid Win32 application

我在dll创建或dll加载中是否犯了错误?

0 个答案:

没有答案