来自cython的win32 API调用

时间:2011-07-10 15:16:55

标签: winapi cython

您好我正在尝试从pyx文件(cython文件)调用CreateFileA win32函数(windows.h已经包含在pxd文件中),但是它不起作用...有没有人试图做所以...需要帮助

更多信息: 使用Mingw进行编译时没有错误,但在执行时我得到-1作为返回值..

插图:

myfile.pxd

cdef extern from "ftd2xx.h":

   stuff....

   # CreateFileA declaration

   HANDLE **CreateFileA***(LPCSTR lpFileName, DWORD dwDesiredAccess, 
       DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, 
       DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, 
       HANDLE hTemplateFile)*

myfile.pyx

cimport myfile.pxd

def somefuction()
HANDLE a = myfile.**CreateFileA**(......)

执行我得-1

1 个答案:

答案 0 :(得分:2)

负1(-1返回)表示存在多个错误。你可能是从错误的地方来的。

无论如何,我的python经验告诉我你可以使用Mark Hammond的win32all来调用win32api。这应该可以解决你所有的问题。

如果没有:

我在Stack Overflow周围偷窥,发现很多人都有类似的问题。以下是您可以尝试的一些事项:

mingw_setup_args={'options': {'build_ext': {'compiler': 'mingw32'}}} import pyximport; pyximport.install(setup_args=mingw_setup_args)

浏览到:c:\ Python2x \ Lib \ distutils \ distutils.cfg:

[build]
compiler = mingw32

[build_ext]
compiler = mingw32

我鼓励你分道扬..如果您在此页面上注意到右侧边栏“相关”div,您会看到有很多人提出了类似的问题。我希望它能让你开始。或者,我建议您寻找更好的编译器 - 这将为您提供完整的错误报告。在此处发布错误报告。如果您要排除任何内容,请尽可能精确,以便尽可能少地删除有用的数据。如果找到完整的错误消息,您肯定可以找到解决方案。

我几乎可以肯定某个地方存在完整的错误报告,你只是不知道在哪里看。我在编程生涯的早期就发现,当程序员看起来“没有错误”时,情况总是如此:他们看错了地方。因此,您应该找出在哪里查找完整的错误报告。