Найти - Пользователи
Полная версия: Вызов функций из dll
Начало » Python для новичков » Вызов функций из dll
1
igorexa
from ctypes import *
from comtypes.client import CreateObject
lib = oledll.LoadLibrary('mydll.dll')
mydll = CreateObject('mydll.mydll')
mydll.funInit

Получаю ошибку AttributeError: funInit

Подскажите, что не так?
doza_and
В комовских dll нет ничего полезного с точки зрения импорта функций. Можете загрузить depends, или dumpbin, просмотреть ими свои dll и убедиться в этом. Не путайте ole/com/dot с обычными динамическими библиотеками.

p.s.
Микрософт их называет *.dll для запутывания публики, и 3 названия для одной технологии тоже похоже для запутывания.
igorexa
И все-таки, решение данной проблемы есть?
doza_and
igorexa
решение данной проблемы есть?
1 Если нет документации или примера использования то … очевидно решения нет.
2 я не углядел откуда вы взяли:
lib = oledll.LoadLibrary('mydll.dll')
может оно и правильно, но я в документации не нашел.
3 Можно попробовать pywin32 http://sourceforge.net/projects/pywin32/files/pywin32/
сравнить поведение. Может чего и станет яснее.
igorexa
doza_and
2 я не углядел откуда вы взяли:
lib = oledll.LoadLibrary('mydll.dll')
может оно и правильно, но я в документации не нашел.
Взял отсюда ТЫЦ

Использование Pywin32 помогло, функции вызываются, результат возвращают верный
from ctypes import *
from comtypes.client import CreateObject
import win32com.client
lib = oledll.LoadLibrary('mydll.dll')
mydll = win32com.client.Dispatch('mydll.mydll')
mydll.funInit

Спасибо, буду разбираться дальше…


doza_and
igorexa
Спасибо, буду разбираться дальше…
Успехов. oledll просто обеспечивает специальные соглашения о вызовах…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB