powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как из Silverlight-приложения обратиться к DLL, написанной на C?
25 сообщений из 40, страница 1 из 2
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883287
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Есть ДЛЛка на Си, которая считывает данные с УСБ-ключа. Можно ли обратиться к ней из Сильверлайт-приложения и как?
2. Можно ли доставить саму эту ДЛЛку клиенту прямо этим Сильверлайт-приложением и чтобы это приложение само потом её использовало? Как?
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883304
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

Ну тут дело не в сильверлайт или WPF.
Тут обычное взаимодействие управляемого кода C# .NET с нуправляемым кодом.

Тебе надо писать обертку на C# для этой dll-ки.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883336
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrus,

но в sl подгрузить все равно нельзя.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883355
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обёртка под .NET на СиШарп уже написана (тоже в виде ДЛЛ), но её нельзя непосредственно использовать в проекте Сильверлайт через добавление ссыллки ("Add Reference" в Вижуал Стьюдио), т. к. этот самый Стьюдио пишет что-то о несовместимости. Оно и понятно - Сильверлайтовский фреймворк - не дотнетовский, там просто сигнатуры некоторых функций совпадают для простоты освоения разработчиками.

Тогда как вызвать эту дотнетовскую бибку из Сильверлайта?

И тогда вопрос 2 становится такой: как доставить две ДЛЛки клиенту внутри сильверлайтовского приложения? И можно ли их использовать прямо из сильверлайтовского приложения, или надо сначала сохранить на диске клиента? Или придётся этим приложением грузить эти ДДЛки отдельно с сервера, сохранять их где-то и уже только потом к ним подключаться?
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883358
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

ну разве не приходит на ум ничего такого? :)
оберни свою dll в wcf сервис и дергай ее через wcf сколько хочется.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883359
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
user73201. Есть ДЛЛка на Си, которая считывает данные с УСБ-ключа. Можно ли обратиться к ней из Сильверлайт-приложения и как?


В пятой версии можно для доверенных приложений.
2. Можно ли доставить саму эту ДЛЛку клиенту прямо этим Сильверлайт-приложением и чтобы это приложение само потом её использовало? Как?

Если у нас есть доступ к файловой системе , почему мы не можем при старте положить dll куда надо, например, из ресурса?
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883366
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#,

да и правда для trusted можно. надо же.
но wcf практичнее.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883382
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
AlexeiKF#,

да и правда для trusted можно. надо же.
но wcf практичнее.

Вопрос, что нужно. Если например сервер в канаде, а usb ключ у пользователя в Ростове, ему трудно будет авторизоваться втыкая ключ в сервер.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883461
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKF#,

да и правда для trusted можно. надо же.
но wcf практичнее.
Эээ... а как это служба будет обращаться к какому-то так ключу в компьютере в Интернете, который может даже за прокси сидит? И ведь всё равно же надо будет клиенту ставить Си ДДЛку и СиШапр обёртку к ней?


И как всё же обратиться даже к этой дотнетовской обёртке на СиШарпе? Через ссылку добавить в своё Сильверлайт-приложение я её не могу, а мне надо из неё функции вызывать и данные с них получать.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883510
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
user7320И как всё же обратиться даже к этой дотнетовской обёртке на СиШарпе? Через ссылку добавить в своё Сильверлайт-приложение я её не могу, а мне надо из неё функции вызывать и данные с них получать.

Надо чтоб тип проекта был сильверлайт 5 и библиотеку под него же перебилдить, я думаю.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883645
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#user7320И как всё же обратиться даже к этой дотнетовской обёртке на СиШарпе? Через ссылку добавить в своё Сильверлайт-приложение я её не могу, а мне надо из неё функции вызывать и данные с них получать.

Надо чтоб тип проекта был сильверлайт 5 и библиотеку под него же перебилдить, я думаю.
Библиотеку перебилдить я не могу - она нам досталась такой от производителя УСБ-ключа, и он не хочет билдить её версию для СЛ5. Есть другие способы, как вызвать функции из библиотеки на дотнете в СЛ?
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883669
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я упрощу задачу - сделать это нужно пока только для Виндоус ОС на машине клиента, т. к. на этой машине должен быть развёрнут Дотнет фреймворк (обёртка-то дотнетовская у меня для этой Си-ДДЛки).
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883715
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

Судя по статье , указанной F#, вам нужно использовать атрибут DllImport["abc.dll"].
Чтобы иметь возможность это сделать приложение должно быть доверенным (и т.д.) и, как я понимаю, рядом с ним должна лежать abc.dll:
http://stackoverflow.com/questions/5107694/how-do-i-add-a-reference-to-an-unmanaged-c-project-called-by-a-c-sharp-project
Далее, нужно вызвать наш метод, учитывая маршаллинг типов. По теме:
http://www.rsdn.ru/forum/dotnet/2941075.all.aspx
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883779
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Обёртка под .NET на СиШарп уже написана (тоже в виде ДЛЛ),

Я имел ввиду эту обертку - или она от поставщика DLL и исходников нет?
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883887
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Обёртка под .NET на СиШарп уже написана (тоже в виде ДЛЛ),

Я имел ввиду эту обертку - или она от поставщика DLL и исходников нет?
И Си-ДЛЛка, и сишарповская ДЛЛка-обёртка - все от поставщика и исходников нет.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37883899
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

по первому вопросу. можно.
пиши метод для сервиса wcf, который дернет метод в твоей dll.
все. че еще надо?
мобильность wcf сервиса? это ж просто. сделай обычный exe и пусть запускается этот exe , а потом уже sl приложение.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37884089
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKuser7320,

по первому вопросу. можно.
пиши метод для сервиса wcf, который дернет метод в твоей dll.
все. че еще надо?
мобильность wcf сервиса? это ж просто. сделай обычный exe и пусть запускается этот exe , а потом уже sl приложение.
А почему Сильверлайт не может просто сам дёрнуть этот метод?

Я с сервисом не понял - сервис у клиента же запускать? Как вы это видите? У клиента постоянно (или по нажатию на кнопке на сайте через СЛ) запущен сервис, который имеет доступ к Си ДЛЛке, а потом этот сервис уже отдаёт данные тому же СЛ или сразу на мой сервер? Если да, то как задать адрес конечной точки этого сервиса, если он будет у клиента и параметры этого адреса будут зависеть от конфигурации сети клиента? И вообще, почему СЛ просто не может сам дёрнуть этот метод, даже из ДЛЛки на управляемом коде?
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37884102
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

ты начни читать. там ссылка вверху.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37884149
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
user7320И вообще, почему СЛ просто не может сам дёрнуть этот метод, даже из ДЛЛки на управляемом коде?

Потому, что SL это фактически другая версия .NET FW. Как ты не можеш дернуть dll для v1 из v4 так и тут. Обращайтесь напрямую к dll
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37884730
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

А что, при помощи DllImport обратиться к библиотеке не получается?
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37884943
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmaticuser7320,

А что, при помощи DllImport обратиться к библиотеке не получается?
Я ещё не пробовал, сейчас буду пробовать. У меня только раздумья, стоит ли делать этакую цепочку - моё СЛ-приложение обращается к уже готовой ДЛЛ-дотнет-обёртке, обёртка - к Си-ДЛЛ. Или сразу к Си-ДЛЛ? По идее, в первом случае с маршалингом типов можно даже не заморачиваться (это пока только моё предположение) - базовые типы-то в СЛ и дотнете совпадают полностью.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37885297
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

Перед тем как обращаться напрямую, будет нелишним посмотреть реализацию кода обертки от производителя. Делается это рефлектором . При желании можно сделать свой аналог обертки.

>стоит ли делать этакую цепочку
Видимо, без разницы. Производитель просто добавил обертку, чтобы вы не задумывались о маршаллинге и, возможно, каких-то тонкостях обращения к нативной длл.

>По идее, в первом случае с маршалингом типов можно даже не заморачиваться (это пока только моё предположение) - базовые типы-то в СЛ и дотнете совпадают полностью.
Да.
>в СЛ и дотнете
СЛ и есть дотнет.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37907068
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKuser7320,

по первому вопросу. можно.
пиши метод для сервиса wcf, который дернет метод в твоей dll.
все. че еще надо?
мобильность wcf сервиса? это ж просто. сделай обычный exe и пусть запускается этот exe , а потом уже sl приложение.
Т. е. по-вашему получается, что клиент должен у себя сам запустить и ехе с сервисом (который будет дёргать ДЛЛ), и СЛ-приложение?

Вообще принцип "клиент сначала что-то у себя на машине запускает" пока вторым вариантом рассматривается. Первый - клиент нажал на кнопку на сайте и у него что-то запустилось на машине - не он сам ехе-шник запустил, а кнопкой на сайте. Как это сделать - ума не приложу. Внутрибраузерный СЛ, вроде, может это сделать. Внутрибраузерный СЛ вообще сразу мою задачу может решить - дёрнуть ДЛЛку и отдать данные на сайт - и сервисы wcf никакие не обязательны. СЛ предпочтительнее wcf тем, что развёртывается (и удаляются) очень просто, а внутрибраузерные вообще не нужно развёртывать и обновлять у клиента. Но Майкрософт столько ограничений искусственных понаставила для этой задачи, что реализовать это практически невозможно для меня. Чего стоит только доверенный сертификат, который мы покупать не будем.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37907260
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,


user7320Т. е. по-вашему получается, что клиент должен у себя сам запустить и ехе с сервисом (который будет дёргать ДЛЛ), и СЛ-приложение?
не ну зачем сам.
ты напишешь программу установки. которая установит службу в винде и sl приложение.
чтото ты мыслишь не теми категориями или я не твоими.
...
Рейтинг: 0 / 0
Как из Silverlight-приложения обратиться к DLL, написанной на C?
    #37907534
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKuser7320,


user7320Т. е. по-вашему получается, что клиент должен у себя сам запустить и ехе с сервисом (который будет дёргать ДЛЛ), и СЛ-приложение?
не ну зачем сам.
ты напишешь программу установки. которая установит службу в винде и sl приложение.
чтото ты мыслишь не теми категориями или я не твоими.
Хммм... я тут вижу два варианта.

1. Зачем ставить и службу, и СЛ-приложение (внебраузерное), если достаточно одного СЛ-приложения? Тем более, что сама по себе служба не сможет (ведь не сможет же?) определить, когда вставлен УСБ-токен, чтобы считать с него данные - т. е. клиент должен "ручками" (нажать на кнопку "считать") инициировать работу службы.

2. Если имеется ввиду браузерное СЛ-приложение, то как оно запросит данные с этой службы?
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как из Silverlight-приложения обратиться к DLL, написанной на C?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]