2016-09-16 2 views
-2

こんにちは私はpythonとdllの機能について1つの質問をする必要があります。私は少し挫折しています。質問は、私はPythonを使用してWindowsからDLL関数をロードできますか?私はCtypeのことを聞いたが、私はこれのための良いチュートリアルを見つけることができない追加の機能を得るために、ウィンドウからdllファイルを使用する別の方法はありますか?私はpyautoguiを使用してマウスイベントで動作するようにいくつかのDLLを呼び出すが、それは私にとっては有用ではない。私はWindowsアプリケーションに適したPythonですか?私はそれがWindows上で実行する知っているしかし、Windowsのためのより良い機能を提供することができる良いdll関数は、Pythonのオリジナルライブラリです。まあ私の意見だと思います。結局のところ、PythonでDLLを扱う価値はありますか?または、私はC#の方が良いと思っています。なぜなら、私は単純化のためにPythonが好きで、C#にまだ移動したくないからです。Python呼び出しとWindows DLLの使用

+0

これはディスカッションサイトではありません。具体的な質問と回答あなたは質問を削除する必要があります。 –

+0

そうでなければ質問のように聞こえません。私はPythonとDLLのインポートについて尋ねています。質問の部分は意見です。それ以外の質問は質問しないと質問ではありません。 –

+1

いいえ、この質問は本当にここの話題です。このことを説明している[ヘルプ]の記事を読み飛ばしたと言ってください。あなたはここに新しい(歓迎!)とこのサイトが何であるかをまだ明確に知らないことを覚えておいてください。 –

答えて

0

はいできます。​​ライブラリが本当に必要なものです。公式の文書はhttps://docs.python.org/3/library/ctypes.htmlです。 DLLを読み込むのはかなり簡単ですが、内部で関数を呼び出すことは、引数の型に応じて苦労する可能性があります。古いCスタイルのエラーリターンコードの扱いは、例外処理やPythonの一般的な低オーバーヘッドコードスタイルに比べて面倒です。

時間の99%は、必要なものを実装するか、適切なDLLをラップする適切な既存のモジュールを使用する方が簡単です。たとえば、PythonでPythonエクスパンダモジュールの中央リポジトリを検索します。それは私のアドバイスです。

+1

Python用のWindows APIは何ですか? –

+0

ctypes関数ポインタは、関数プロトタイプ 'restype'、' argtypes'、 'errcheck'を定義することができます。 'errcheck'関数が例外を発生させた場合、ctypes-wrapped APIを消費するコードはエラー戻りコードを心配する必要はありません。 – eryksun

+0

真ですが、リターンコードを例外に変換するには、コードを記述する必要があります。したがって、一方では "DLLスタイルからPythonスタイルへ" ctypesラッパー、もう一方ではラッパーを使用する実際のアプリケーションが必要になります。前述したように、これはほとんどのライブラリにとって厄介なプロセスになる可能性があります。 – Guillaume

関連する問題