Найти - Пользователи
Полная версия: тип ctypes.c_char_p (аналог в C#)
Начало » Python для новичков » тип ctypes.c_char_p (аналог в C#)
1
vald
Здравствуйте,
есть скрипт на питоне,в который мне лезть нельзя,надо к нему написать библиотеку,я написала на шарпе - из другого приложения на шарпе она работает,а из питона не работает
Думаю что проблема может быть в несоответствии типов,прошу посмотреть
так выглядит функция на шарпе(в библиотеке),которую надо вызывать из питона:

public int SendString(string s, int port_, int font_)

так она вызывается из питона:
def SendStr(s, port_, font_):
    mydll = ctypes.WinDLL("Stella.dll")
    send = mydll.SendString
    mydll.SendString.argtypes = [ctypes.c_char_p, ctypes.c_int, ctypes.c_int]
    mydll.SendString.restype  = c_int
    st = s.encode('cp1251')
    i=2
    count = 0
    critcnt = 1
    while i!=0 and count<critcnt:
        i=send(c_char_p(st),c_int(port_),c_int(font_)) и т.д.

может тип string и c_char_p не соотв-ют др др,уже не знаю что делать(
питон не знаю совсем,уже думаю может библиотеку на нем писать,может тогда подскажете хороший тьюториал как написать библиотку на питоне (у меня Python32)??
Shaman
Интересно, почему вы решили что это должно работать, ведь во всех талмудах .NET/C# объясняется разница между managed и unmanaged образами?
Воспользуйтесь http://www.google.ru/search?q=%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2+%D0%B8%D0%B7+managed+dll , или перепишите библиотеку для компиляции в нативный код, или рассмотрите взможности использования .NET реализаций питона.
doza_and
Shaman
или рассмотрите возможности использования .NET реализаций питона
Практически не вариант. Любое достаточно сложное приложение использует компилированные модули (ведь автор тоже библиотеку делает). Эти модули NET реализация не поддерживает (не поддерживала пару лет назад когда я на это смотрел).

:) из двух десятков знакомых мне программистов шарполюбителей, только один знал как сделать обычную динамическую библиотеку.

:) С моей точки зрения шарп язык для написания виндового gui приложения. Исходя из этого считаю шарп неудачным выбором для создания библиотеки.

Если вы объясните публике что вы хотите за библиотеку для питона создать и почему это надо делать на шарпе вам смогут дать более дельные советы, может даже скажут что библиотека с такой функциональностью уже есть.

Shaman
уже не знаю что делать(
1. понять почему нужна именно библиотека а не питоновский модуль.
2. если нужна то написать ее на c/c++
vald
да,писать на шарпе не вариант,сижу переделываю на делфи,в принципе все равно на чем писать,но хорошо я знаю только шарп,но вот он отпадает,пишу на делфи
питон я вообще не знаю,и боюсь туда лезть и сломать что работает..до этого библ к питонскритпу этому была на делфи,так что надеюсь получится
Shaman
doza_and
Любое достаточно сложное приложение использует компилированные модули (ведь автор тоже библиотеку делает). Эти модули NET реализация не поддерживает (не поддерживала пару лет назад когда я на это смотрел).
Что было до второго дотнета мне не известно, а в нём подключать обычные длл-ки проблемой не было.
vald
пишу на делфи
Можно и так, только аккуратнее там со строковыми типами.
vald
Shaman
Можно и так, только аккуратнее там со строковыми типами.
вот как раз с ними сейчас и втыкаюсь((((
doza_and
Shaman
а в нём подключать обычные длл-ки проблемой не было
Я правильно понимаю что в IronPython берем обычный пакет ну например numpy и ставим его в IronPython? Мне в это не особо верится т.к. из гугла получаю https://pytools.codeplex.com/wikipage?title=NumPy%20and%20SciPy%20for%20.Net. т.е. Нужен порт и он в текущее время не поддерживается…
Shaman
doza_and
Я правильно понимаю что в IronPython берем обычный пакет ну например numpy и ставим его в IronPython?
Прошу прощения - выше я не понял о которых именно модулях речь. Бинарные CPython-модули с IronPython конечно же несовместимы.
doza_and
Кстати я не вижу причин почему нельзя было сделать поддержку бинарных модулей. Может со временем она и появится.
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