用LPSTR在python 3中调用dll

时间:2016-04-21 19:22:29

标签: python-3.x dll ctypes lpstr

我有一个名为Column1 Column2 Tom Blue Tom Gary Green Gary Yellow Sam Sam Red 的{​​{1}},有4个函数,在python 3.5中使用:      Column1 Column2 Tom Blue Tom Blue Gary Green Gary Yellow Sam Red Sam Red

我的问题是调用具有.dll的函数:

my.dll

myDLL = ctypes.cdll.LoadLibrary(Path:\to\my.dll)的其他3次调用工作正常。

以下是我为LPSTR尝试的代码:

#include "stdafx.h"
#include "newheader.h"    
double  _stdcall pain_function(double arg1, double arg2, LPSTR arg_string_with_spaces)

my.dll会返回一些荒谬的数字。我尝试了一些变化,主要是:

pain_function

我在其他地方看过这里:

  1. python-ctypes-prototype-with-lpcstr-out-parameter

  2. Using String Parameters in DLL Function Calls

  3. 将200个字符串传递给dll的正确方法是什么?

    提前谢谢

1 个答案:

答案 0 :(得分:1)

你表示原型是:

double  _stdcall pain_function(double arg1, double arg2, LPSTR arg_string_with_spaces)

但使用:

myDLL = ctypes.cdll.LoadLibrary(Path:\to\my.dll)

应该是__stdcall调用约定:

myDLL = ctypes.WinDLL('Path:\to\my.dll')