Использование файла MFC .dll с Python 3.2

1

В настоящее время я планирую получить доступ к моему файлу.dll на основе MFC Dialog, используя Python. Я новичок в Python и имею последнюю версию Python, установленную, т.е. 3.2. Я также установил PythonWin, но не уверен, будет ли это полезно или нет. Я понял, как основы использования python с помощью ctypes. В моем dll файле у меня есть две функции:

double BoxArea(double L, double H, double W);

double BoxVolume(double L, double H, double W);

и я использовал команду extern dllimport для доступа к ним в моем приложении mfc dialog.

extern "C" __declspec(dllexport)void BoxProperties(double Length, double Height,
                                    double Width, double& Area, double& Volume);

Все это отлично работает при попытке доступа с другой программой mfc. Теперь я пытаюсь получить доступ к этим двум функциям с помощью Python. Может ли кто-нибудь предложить мне, как мне идти, и какие команды могли бы прямо позволить мне получить к нему доступ?

Спасибо заранее.

  • 0
    Ммм использовать PyQt? MFC в значительной степени устарел. То, что вы пытаетесь сделать, является чрезвычайно экзотическим и может не сработать или занять очень много времени для реализации (поскольку у вас нет надлежащих привязок).
  • 1
    Я проверял онлайн, и люди предлагали использовать PythonWin. Интересно, будет ли это хорошо? По вашему мнению, как именно я должен создавать свои функции MFC, если мне нужно использовать его вместе с Python, потому что, в конце концов, мне нужно иметь возможность использовать этот язык сценариев для общения с моим .dll и продолжать изменять только .dll вместо все приложение.
Показать ещё 5 комментариев
Теги:
dll
scripting
visual-c++
mfc

2 ответа

2
Лучший ответ

Я думаю, это должно дать вам представление о том, что вы пытаетесь сделать. Надеюсь это поможет.

  • 1
    Это определенно похоже на то, что я делаю. Спасибо за ссылку :)
  • 0
    Ссылка недействительна.
1

MFC - это не просто библиотека, это платформа. Это будет зависеть от некоторых допущений, таких как правильная инициализация, выполняемая при запуске программы, и что между ними периодически вызывается насос сообщений MFC. Эти предположения не будут удовлетворены Python, и это будет непрактично, чтобы заставить его работать должным образом.

Можно запрограммировать DLL, чтобы она использовала MFC внутри, но полностью автономна, но я предполагаю, что у вас нет. См. Http://msdn.microsoft.com/en-us/library/30c674tx(v=vs.90).aspx

  • 0
    Не могли бы вы предложить мне код для работы вышеуказанной программы? Я пытаюсь, но это все еще не дает должного результата :(
  • 0
    @ Emulator, убедитесь, что ваша DLL соответствует рекомендациям, которые я дал в ссылке. Если этого не произойдет, то, что вы пытаетесь сделать, будет невозможно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню