私は単純なMFC .dllファイルを作成しました。別のMFCアプリケーションプログラムを使ってアクセスできます。私が持っている..シンプルなpythonプログラムが自分の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
:私は、Python 3.2.2を使用して同じことをしようとしましたが、私は自分のライブラリをロードした後に、それは私のDLLの関数を検出していないとのようなエラーになりますPythonを使用してMFC dllファイルにアクセスする簡単なプログラムを見つけようとしていますが、まだ成功していません。みんなに知らせるために、私はctypesを読んでこれを得るために多くを探してきました。私の主な目的は、Pythonをスクリプト言語として使用して、MFC C++ DLLとのインタフェースを作成することです。私はたくさんの読書をしています。私が得ることができる最も近いものはPythonWinでした。この点で助けてください。
乾杯。
あなたはC++を使用しているので、おそらく関数をextern Cとしてエクスポートするのを忘れていたでしょうか(あるいは何らかのdefファイルを使用しているかもしれません)?あなたが関数名をC++で修飾していない場合。 Ctypesでは、Cの関数を呼び出しても、特定の呼び出し規約で呼び出すことができると仮定していますが、extern Cを使用しないとC++で問題が発生します。 – Voo
特定の質問に答えることはできませんが、[Cython] :ctypes'を使用するのではなく、もっと簡単になると思います。 –
@ Voo:extern "C" __declspec(dllexport)を使用しましたが、それでも私には同じエラーが発生し、Python経由で私の関数にアクセスすることはできません。私が作成したDLLを知ってもらうために、このリンクをチェックしてください:http://www.functionx.com/visualc/libraries/staticdll.htm – Neophile