解決済み

PythonからMFCを利用

  • 困ってます
  • 質問No.9619449
  • 閲覧数46
  • ありがとう数4
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 78% (40/51)

Python3.x.xから、VC++で作成されたDLLを呼び出してMFCを起動する事は出来ますか?もしこれが可能でしたら、その方法を教えてください。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 44% (675/1505)

あー。ご要望は理解できますが、単純な話ではないです。
MFCって、そんなことが上手くできるよう設計されてないからです。

やるとしたら標準CのDLLの中から、フルのMFC EXEを呼び出し
それとやり取りした結果を返す感じでしょうか。
これをやるより、どこかでWin32 APIを呼び出すほうが現実的な気がします。
(ちょっとしたダイアログ表示する程度ならですが)

MFCはクラスライブラリとは付いていますが、
Windowsプラットフォームのまんまです。
Win32 APIをラップしただけというイメージです。

以下英語ですが、今回と似たようなやり取りをしています。
https://stackoverflow.com/questions/7346140/using-an-mfc-dll-file-with-python-3-2

以上、参考にならなかったらごめんなさい。
お礼コメント
takedon3

お礼率 78% (40/51)

回答、ありがとうございます。No2さんの回答と併せて考えると、MFCをDLL化してPythonから呼び出すしかないようですね。ただ、単純に呼び出すだけだとMFCが動作中はPythonの処理が次に移れないですね。質問ではやりたいことが明確になっていなかったですが、動作中のMFCを操作して、その出力をPythonに取り込んだり、PythonからMFCの動作を制御したりすることです。たぶん、DLL化したMFCをマルチスレッドで動くようにすればいいような気がします。この方法は、別に質問を出します。
投稿日時 - 2019-05-31 00:22:50

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 45% (416/920)

フツーにDLL呼び出せば、MFC使うのはOSなんかが処理してくれるのでは。
hoge.dllにtest()って関数があったとして、

from ctypes import cdll
import ctypes

dll = ctypes.cdll.LoadLibrary('hoge.dll')
c_test = dll.test

test()
お礼コメント
takedon3

お礼率 78% (40/51)

回答、ありがとうございます。DLLを呼び出すという手がありますね。
投稿日時 - 2019-05-31 00:16:11
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ