一个简单的python程序无法访问我的dll

一个简单的python程序无法访问我的dll,python,visual-c++,dll,scripting,mfc,Python,Visual C++,Dll,Scripting,Mfc,我已经创建了一个简单的MFC.dll文件,我可以通过另一个MFC应用程序访问它。我曾尝试使用Python 3.2.2执行相同的操作,但在加载库后,它没有检测到dll中的函数,并给出如下错误: Traceback (most recent call last): File "<interactive input>", line 1, in <module> File "C:\Python32\lib\ctypes\__init__.py", line 353

我已经创建了一个简单的MFC.dll文件,我可以通过另一个MFC应用程序访问它。我曾尝试使用Python 3.2.2执行相同的操作,但在加载库后,它没有检测到dll中的函数,并给出如下错误:

    Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "C:\Python32\lib\ctypes\__init__.py", line 353, in __getattr__
    func = self.__getitem__(name)
  File "C:\Python32\lib\ctypes\__init__.py", line 358, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'SayHello' not found
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\Python32\lib\ctypes\\uuuu init\uuuuu.py”,第353行,在\uuu getattr中__
func=self.\uuuu getitem\uuuuu(名称)
文件“C:\Python32\lib\ctypes\\uuuu init\uuuuuu.py”,第358行,在\uuuu getitem中__
func=self.\u FuncPtr((名称或顺序,self))
AttributeError:未找到函数“SayHello”

我试图找到一个简单的程序来使用Python访问我的MFCDLL文件,但到目前为止还没有成功。为了让每个人都知道,我一直在阅读,并一直在寻找很多让这个工作。我的主要目标是使用Python作为脚本语言来与MFC C++ DLL进行接口。我一直在读很多书,最近的一本是关于蟒蛇的。请在这方面提供帮助


干杯

我已经掌握了我的问题并解决了它。对于那些将来可能会想到这一点的人,我只想粘贴python脚本代码,以便在python脚本中访问函数。使用C++函数的方法显然是在.dll文件中声明这个。

extern "C" __declspec(dllexport) int SayHello(int strNo);

脚本和Python脚本应该类似于这样的:(需要GETAsTracle()函数来访问Python脚本中的C++函数”

如果有人认为我可能错了,请随时纠正我。我是Python的初学者,它以这种方式为我工作,之后我能够继续编写脚本。 希望这能帮助别人


干杯。

我已经掌握了我的问题并解决了它。对于那些将来可能会想到这一点的人,我只想粘贴python脚本代码,以便在python脚本中访问函数。使用C++函数的方法显然是在.dll文件中声明这个。

extern "C" __declspec(dllexport) int SayHello(int strNo);

脚本和Python脚本应该类似于这样的:(需要GETAsTracle()函数来访问Python脚本中的C++函数”

如果有人认为我可能错了,请随时纠正我。我是Python的初学者,它以这种方式为我工作,之后我能够继续编写脚本。 希望这能帮助别人


欢呼。< /P>因为你使用C++,你可能忘记把函数导出为ExtEnC(或者可能使用DEF文件)?如果没有C++修饰函数名。虽然我假设cType只允许调用C函数,但是C++中有些问题是有问题的,如果你不使用Ext.C,我不能回答你的特定问题,但是你可以检查而不是使用<代码> cType < /Cord>——我怀疑它会容易得多。@ Voo:我确实使用了Ext“C”…但它仍然给我同样的错误,我仍然无法通过Python访问我的函数。为了让您知道我创建的dll,请查看此链接:我不确定为什么它在默认情况下在我加载库时没有检测到我的.dll函数。我确信我的库已经加载了,但是还没有真正能通过我的任何函数。既然你使用C++,你可能忘记把函数导出为ExtEnC(或者可能使用DEF文件)?如果没有C++修饰函数名。虽然我假设cType只允许调用C函数,但是C++中有些问题是有问题的,如果你不使用Ext.C,我不能回答你的特定问题,但是你可以检查而不是使用<代码> cType < /Cord>——我怀疑它会容易得多。@ Voo:我确实使用了Ext“C”…但它仍然给我同样的错误,我仍然无法通过Python访问我的函数。为了让您知道我创建的dll,请查看此链接:我不确定为什么它在默认情况下在我加载库时没有检测到我的.dll函数。我100%确信我的库已经加载,但我还没有真正完成我的任何函数。