|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
1. Есть ДЛЛка на Си, которая считывает данные с УСБ-ключа. Можно ли обратиться к ней из Сильверлайт-приложения и как? 2. Можно ли доставить саму эту ДЛЛку клиенту прямо этим Сильверлайт-приложением и чтобы это приложение само потом её использовало? Как? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 11:01 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
user7320, Ну тут дело не в сильверлайт или WPF. Тут обычное взаимодействие управляемого кода C# .NET с нуправляемым кодом. Тебе надо писать обертку на C# для этой dll-ки. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 11:13 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
unknownfromrus, но в sl подгрузить все равно нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 11:28 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
Обёртка под .NET на СиШарп уже написана (тоже в виде ДЛЛ), но её нельзя непосредственно использовать в проекте Сильверлайт через добавление ссыллки ("Add Reference" в Вижуал Стьюдио), т. к. этот самый Стьюдио пишет что-то о несовместимости. Оно и понятно - Сильверлайтовский фреймворк - не дотнетовский, там просто сигнатуры некоторых функций совпадают для простоты освоения разработчиками. Тогда как вызвать эту дотнетовскую бибку из Сильверлайта? И тогда вопрос 2 становится такой: как доставить две ДЛЛки клиенту внутри сильверлайтовского приложения? И можно ли их использовать прямо из сильверлайтовского приложения, или надо сначала сохранить на диске клиента? Или придётся этим приложением грузить эти ДДЛки отдельно с сервера, сохранять их где-то и уже только потом к ним подключаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 11:34 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
user7320, ну разве не приходит на ум ничего такого? :) оберни свою dll в wcf сервис и дергай ее через wcf сколько хочется. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 11:36 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
user73201. Есть ДЛЛка на Си, которая считывает данные с УСБ-ключа. Можно ли обратиться к ней из Сильверлайт-приложения и как? В пятой версии можно для доверенных приложений. 2. Можно ли доставить саму эту ДЛЛку клиенту прямо этим Сильверлайт-приложением и чтобы это приложение само потом её использовало? Как? Если у нас есть доступ к файловой системе , почему мы не можем при старте положить dll куда надо, например, из ресурса? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 11:36 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
F#, да и правда для trusted можно. надо же. но wcf практичнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 11:38 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
AlexeiKF#, да и правда для trusted можно. надо же. но wcf практичнее. Вопрос, что нужно. Если например сервер в канаде, а usb ключ у пользователя в Ростове, ему трудно будет авторизоваться втыкая ключ в сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 11:44 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
AlexeiKF#, да и правда для trusted можно. надо же. но wcf практичнее. Эээ... а как это служба будет обращаться к какому-то так ключу в компьютере в Интернете, который может даже за прокси сидит? И ведь всё равно же надо будет клиенту ставить Си ДДЛку и СиШапр обёртку к ней? И как всё же обратиться даже к этой дотнетовской обёртке на СиШарпе? Через ссылку добавить в своё Сильверлайт-приложение я её не могу, а мне надо из неё функции вызывать и данные с них получать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 12:11 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
user7320И как всё же обратиться даже к этой дотнетовской обёртке на СиШарпе? Через ссылку добавить в своё Сильверлайт-приложение я её не могу, а мне надо из неё функции вызывать и данные с них получать. Надо чтоб тип проекта был сильверлайт 5 и библиотеку под него же перебилдить, я думаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 12:35 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
F#user7320И как всё же обратиться даже к этой дотнетовской обёртке на СиШарпе? Через ссылку добавить в своё Сильверлайт-приложение я её не могу, а мне надо из неё функции вызывать и данные с них получать. Надо чтоб тип проекта был сильверлайт 5 и библиотеку под него же перебилдить, я думаю. Библиотеку перебилдить я не могу - она нам досталась такой от производителя УСБ-ключа, и он не хочет билдить её версию для СЛ5. Есть другие способы, как вызвать функции из библиотеки на дотнете в СЛ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 13:27 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
Я упрощу задачу - сделать это нужно пока только для Виндоус ОС на машине клиента, т. к. на этой машине должен быть развёрнут Дотнет фреймворк (обёртка-то дотнетовская у меня для этой Си-ДДЛки). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 13:37 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 14:03 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
Обёртка под .NET на СиШарп уже написана (тоже в виде ДЛЛ), Я имел ввиду эту обертку - или она от поставщика DLL и исходников нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 14:28 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
F#Обёртка под .NET на СиШарп уже написана (тоже в виде ДЛЛ), Я имел ввиду эту обертку - или она от поставщика DLL и исходников нет? И Си-ДЛЛка, и сишарповская ДЛЛка-обёртка - все от поставщика и исходников нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 14:57 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
user7320, по первому вопросу. можно. пиши метод для сервиса wcf, который дернет метод в твоей dll. все. че еще надо? мобильность wcf сервиса? это ж просто. сделай обычный exe и пусть запускается этот exe , а потом уже sl приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 15:01 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
AlexeiKuser7320, по первому вопросу. можно. пиши метод для сервиса wcf, который дернет метод в твоей dll. все. че еще надо? мобильность wcf сервиса? это ж просто. сделай обычный exe и пусть запускается этот exe , а потом уже sl приложение. А почему Сильверлайт не может просто сам дёрнуть этот метод? Я с сервисом не понял - сервис у клиента же запускать? Как вы это видите? У клиента постоянно (или по нажатию на кнопке на сайте через СЛ) запущен сервис, который имеет доступ к Си ДЛЛке, а потом этот сервис уже отдаёт данные тому же СЛ или сразу на мой сервер? Если да, то как задать адрес конечной точки этого сервиса, если он будет у клиента и параметры этого адреса будут зависеть от конфигурации сети клиента? И вообще, почему СЛ просто не может сам дёрнуть этот метод, даже из ДЛЛки на управляемом коде? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 15:59 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
user7320, ты начни читать. там ссылка вверху. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 16:06 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
user7320И вообще, почему СЛ просто не может сам дёрнуть этот метод, даже из ДЛЛки на управляемом коде? Потому, что SL это фактически другая версия .NET FW. Как ты не можеш дернуть dll для v1 из v4 так и тут. Обращайтесь напрямую к dll ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 16:30 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
user7320, А что, при помощи DllImport обратиться к библиотеке не получается? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2012, 06:55 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
enigmaticuser7320, А что, при помощи DllImport обратиться к библиотеке не получается? Я ещё не пробовал, сейчас буду пробовать. У меня только раздумья, стоит ли делать этакую цепочку - моё СЛ-приложение обращается к уже готовой ДЛЛ-дотнет-обёртке, обёртка - к Си-ДЛЛ. Или сразу к Си-ДЛЛ? По идее, в первом случае с маршалингом типов можно даже не заморачиваться (это пока только моё предположение) - базовые типы-то в СЛ и дотнете совпадают полностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2012, 10:45 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
user7320, Перед тем как обращаться напрямую, будет нелишним посмотреть реализацию кода обертки от производителя. Делается это рефлектором . При желании можно сделать свой аналог обертки. >стоит ли делать этакую цепочку Видимо, без разницы. Производитель просто добавил обертку, чтобы вы не задумывались о маршаллинге и, возможно, каких-то тонкостях обращения к нативной длл. >По идее, в первом случае с маршалингом типов можно даже не заморачиваться (это пока только моё предположение) - базовые типы-то в СЛ и дотнете совпадают полностью. Да. >в СЛ и дотнете СЛ и есть дотнет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2012, 13:48 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
AlexeiKuser7320, по первому вопросу. можно. пиши метод для сервиса wcf, который дернет метод в твоей dll. все. че еще надо? мобильность wcf сервиса? это ж просто. сделай обычный exe и пусть запускается этот exe , а потом уже sl приложение. Т. е. по-вашему получается, что клиент должен у себя сам запустить и ехе с сервисом (который будет дёргать ДЛЛ), и СЛ-приложение? Вообще принцип "клиент сначала что-то у себя на машине запускает" пока вторым вариантом рассматривается. Первый - клиент нажал на кнопку на сайте и у него что-то запустилось на машине - не он сам ехе-шник запустил, а кнопкой на сайте. Как это сделать - ума не приложу. Внутрибраузерный СЛ, вроде, может это сделать. Внутрибраузерный СЛ вообще сразу мою задачу может решить - дёрнуть ДЛЛку и отдать данные на сайт - и сервисы wcf никакие не обязательны. СЛ предпочтительнее wcf тем, что развёртывается (и удаляются) очень просто, а внутрибраузерные вообще не нужно развёртывать и обновлять у клиента. Но Майкрософт столько ограничений искусственных понаставила для этой задачи, что реализовать это практически невозможно для меня. Чего стоит только доверенный сертификат, который мы покупать не будем. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2012, 12:11 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
user7320, user7320Т. е. по-вашему получается, что клиент должен у себя сам запустить и ехе с сервисом (который будет дёргать ДЛЛ), и СЛ-приложение? не ну зачем сам. ты напишешь программу установки. которая установит службу в винде и sl приложение. чтото ты мыслишь не теми категориями или я не твоими. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2012, 13:23 |
|
Как из Silverlight-приложения обратиться к DLL, написанной на C?
|
|||
---|---|---|---|
#18+
AlexeiKuser7320, user7320Т. е. по-вашему получается, что клиент должен у себя сам запустить и ехе с сервисом (который будет дёргать ДЛЛ), и СЛ-приложение? не ну зачем сам. ты напишешь программу установки. которая установит службу в винде и sl приложение. чтото ты мыслишь не теми категориями или я не твоими. Хммм... я тут вижу два варианта. 1. Зачем ставить и службу, и СЛ-приложение (внебраузерное), если достаточно одного СЛ-приложения? Тем более, что сама по себе служба не сможет (ведь не сможет же?) определить, когда вставлен УСБ-токен, чтобы считать с него данные - т. е. клиент должен "ручками" (нажать на кнопку "считать") инициировать работу службы. 2. Если имеется ввиду браузерное СЛ-приложение, то как оно запросит данные с этой службы? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2012, 15:53 |
|
|
start [/forum/topic.php?fid=21&msg=37883887&tid=1441674]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 170ms |
0 / 0 |