Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
15.01.2014, 12:44
|
|||
---|---|---|---|
|
|||
Как использовать .NET через COM в других средах? |
|||
#18+
Об этом есть статья http://www.west-wind.com/presentations/VfpDotNetInterop/DotNetFromVFP.asp но по этому образцу у меня не получается. Вот что я пока что сотворил. Выполнение пунктов 1 и 2 из комментариев в исходнике проходит без запинки. Но когда залезаю в среду Фокса и даю команду по пункту 3, выскакивает сообщение OLE Error Code 0x80070002: The system cannot find the file specified. Этот же DotNetAsCOM.dll отлично вызывается из MS Visual Basic 6, правда, там требуется включить в проект ссылку на библиотеку DotNetAsCOM.tlb. И бэйсиково exe-приложение ActiveX с вывеской формы из Фокса нормально вызывается. Библиотека типов DotNetAsCOM.tlb распознаётся в Фоксе через ObjectBrowser, а вот .dll за COM библиотеку не признаётся. И из Lua тоже дот-нетовский COM не распознаётся, а бэйсиков вызывается нормально. Делал пробы в .NET 2 и 4, с ключом x86 и без. Так что у меня не так? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2014, 13:16
|
|||
---|---|---|---|
Как использовать .NET через COM в других средах? |
|||
#18+
Вместо п.2 ? regasm DotNetAsCOM.dll // зарегать все публик классы gacutil -i DotNetAsCOM.dll // для пущей уверенности закинуть в GAC ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2014, 13:17
|
|||
---|---|---|---|
Как использовать .NET через COM в других средах? |
|||
#18+
Rostislav D. Kudryashovа вот .dll за COM библиотеку не признаётся. и не должен здесь костыль вроде нашли - http://stackoverflow.com/questions/10556948/why-do-i-get-type-library-not-found-when-consuming-net-com-server-from-foxpro-c ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2014, 13:36
|
|||
---|---|---|---|
|
|||
Как использовать .NET через COM в других средах? |
|||
#18+
buser, запуск gacutil -i DotNetAsCOM.dll вызывает сообщение: Failure adding assembly to the cache: Attempt to install an assembly without a strong name. Пожалуйста, подскажи, как присвоить сборке "строгое имя" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2014, 13:39
|
|||
---|---|---|---|
Как использовать .NET через COM в других средах? |
|||
#18+
Rostislav D. Kudryashov, учебник открой или гугл. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2014, 13:54
|
|||
---|---|---|---|
|
|||
Как использовать .NET через COM в других средах? |
|||
#18+
Изопропил, этот "костыль", вроде, не к тому случаю. Если перевести с английского: "I have a .Net COM server that has a method that takes a message and a delay as parameters. After the delay, it fires an event sending the message back to the client. It works with .Net and VB6 clients." на русский, то получится "У меня есть .Net COM сервер с методом, который принимает сообщение и задержку как параметры. После задержки он выдаёт событие, шлющее сообщение обратно клиенту. Это работает с клиентами с .Net и VB6. И далее разъясняется, как в привязать в Фоксе события из КОМ-сервера. Когда-нибудь мне это может и пригодится, но сейчас мне нужно сначала просто создать объект КОМ-сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2014, 13:57
|
|||
---|---|---|---|
|
|||
Как использовать .NET через COM в других средах? |
|||
#18+
Изопропил, хорошо ты меня посылаешь по всем адресам. А сам-то ты имеешь достаточную "пущую" уверенность, что Фокс не может создать объект сервера из-за отсутствия "строгой подписи"? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2014, 14:04
|
|||
---|---|---|---|
Как использовать .NET через COM в других средах? |
|||
#18+
Rostislav D. Kudryashov, строгая подпись нужна для помещения сборки в GAC ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.01.2014, 14:08
|
|||
---|---|---|---|
|
|||
Как использовать .NET через COM в других средах? |
|||
#18+
Не пронял, в чём фокус, но после регистрации regasm DotNetAsCOM.dll /codebase /tlb:DotNetAsCOM.tlb с получением предупреждения RegAsm : warning RA0000 : Регистрация сборки без подписи с использованием параметра /codebase может вызвать конфликт данной сборки с другими приложениями ... Фокс успешно выполнил o = CREATEOBJECT ('DotNetAsCOM.CSharpCalc') Спасибо, друзья, что ткнули носом неуча. У меня был выбор: или учить MS Visual Basic 6 или C#. Буду учить C# ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1403416]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 321ms |
total: | 481ms |
0 / 0 |