Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 23, 2009 12:31:29

inlanger
От:
Зарегистрирован: 2009-01-17
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Как пользоваться ctypes?

Никак не могу понять, как пользоваться ctypes :(
Может поможет кто, на примере:
http://msdn.microsoft.com/en-us/library/aa909766.aspx
или
http://www.discussweb.com/windows-mobile/1950-how-soft-reset-windows-mobile-5-0-a.html
Начитался гору манов, но всё равно не въеду…



Офлайн

#2 Янв. 26, 2009 15:30:51

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

Как пользоваться ctypes?

:)
а документацию читать пробовал?
http://docs.python.org/library/ctypes.html



Офлайн

#3 Янв. 29, 2009 17:01:20

inlanger
От:
Зарегистрирован: 2009-01-17
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Как пользоваться ctypes?

Пробовал. И ничего не понял. Там в примерах работа с непонятными мне библиотеками и dll… Я не пойму откуда они там что берут в примерах. Поэтому и прошу показать на конкретном примере :(



Офлайн

#4 Янв. 30, 2009 03:14:16

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как пользоваться ctypes?

Офлайн

#5 Янв. 31, 2009 19:34:43

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

Как пользоваться ctypes?

:)
Ужос…
Прочитай что такое dll и чем они отличаются от статических библиотек…
Если уж речь зашла до конкретной функции PlaySound то читать про неё нужно здесь:
http://msdn.microsoft.com/en-us/library/ms712879.aspx
Стоит так же знать о разнице между юникодными вызовами и ансишными…
Где почитать - не подскажу, но тебе нужно будет использовать не PlaySound, а PlaySoundW или PlaySoundA
Дальше по доке…
Example Code
The following example plays a sound file:
PlaySound(TEXT(“recycle.wav”), NULL, SND_FILENAME);
Нужно узнать значение SND_FILENAME.
Опять же по доке:
Header: Declared in Mmsystem.h; include Windows.h.
Т.е. ищем значение в Mmsystem.h
А дальше читаем доку по ctypes
>>> from ctypes import *
>>> print(windll.kernel32) # doctest: +WINDOWS
почти то что нам нужно, но вместо kernel32.dll нам нужна winmm.dll
И если теперь попытаться всё это сложить, можно родить следующее:
>>> from ctypes import windll
>>> print(windll.winmm.PlaySoundW) # <_FuncPtr object at 0x00BED918>
Есть, говорит, такая функция…
И последний, героический шаг
>>> from ctypes import windll
>>> windll.winmm.PlaySoundW('recycle.wav', None, 0x00020000)
Теоретически должно чего-то проиграть…
Что такое 0x00020000 - думаю догадаешься…



Офлайн

#6 Янв. 31, 2009 23:12:44

inlanger
От:
Зарегистрирован: 2009-01-17
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Как пользоваться ctypes?

Я привёл те ссылки, потому что мне нужно понимать как пользоваться в WindowsMobile, там нет kernel32 и т.д.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version