Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
02.02.2004, 17:51
|
|||
---|---|---|---|
|
|||
DLL на .NET для FoxPro |
|||
#18+
Написана ClassLibrary с несколькими функциями Public, скомпонована в DLL. Нужно чтобы ее могли заюзать другие приложения в частности написанные на фоксе. При вызове функций этой DLL из фокса пишет, что точка входа не найдена и выдает имя функции. Можно вообще написать DLL на .NET чтобы пристегнуть ее к другим приложениям на других языках? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2004, 18:00
|
|||
---|---|---|---|
DLL на .NET для FoxPro |
|||
#18+
авторМожно вообще написать DLL на .NET чтобы пристегнуть ее к другим приложениям на других языках? если это Net языки, то да однозначно, если не Net - тоже да. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2004, 18:10
|
|||
---|---|---|---|
|
|||
DLL на .NET для FoxPro |
|||
#18+
"если не Net - тоже да" Хм... тогда почти риторический вопрос - как? ))))))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2004, 17:32
|
|||
---|---|---|---|
DLL на .NET для FoxPro |
|||
#18+
http://www.gotdotnet.ru/Forums/CommonForum/7452.aspx http://www.gotdotnet.ru/Forums/ASPNET/26860.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2004, 18:40
|
|||
---|---|---|---|
|
|||
DLL на .NET для FoxPro |
|||
#18+
2snake Это все не то. У меня уже при регистрации компонента говорит что нет точки входа. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2004, 08:41
|
|||
---|---|---|---|
DLL на .NET для FoxPro |
|||
#18+
1.Какой язык .Net? 2.А ClassLibrary написана с опцией: в свойствах проекта VS флажок Build / Register for COM interop ? 3.А как "конкретно"(код) используете ClassLibrary и что у нее "экспортируется" (определено как public)? 4.Я добился "нормальной" работы... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2004, 12:12
|
|||
---|---|---|---|
DLL на .NET для FoxPro |
|||
#18+
Если у вас есть что-нить типа ms-help://MS.NETFrameworkSDKv1.1/cpguidenf/html/cpconworkingwithstrongly-namedassemblies.htm].NET Framework SDK Documentation, то смотрите прямо в ней, начиная от страницы "Creating and Using Strong-Named Assemblies". Порядок действий примерно такой: 1. Делаете .NET-сборку в виде dll; 2. Генерите пару ключей для возможности ее регистрации под COM; 3. Подписываете сборку этими ключами ("Signing an Assembly with a Strong Name"); 4. Регистрируете сборку в GAC, возможно с одновременным созданием TLB-файла (".NET Services Installation Tool (Regsvcs.exe)"); 5. Регистрируете TLB обычным regsvr32.exe. Не помню счаз точно, возможно, что п.п. 4 и 5 - взаимоисключающие, или вообще "лишние", т.к. в директории .NET Framework-а есть куча консольных утилит, которые могут из .NET-сборки сделать "подобие ActiveX-COM-dll", когда я давно "экспериментировал" с такими превращениями, то у меня "в сухом остатке" осталось только 4 "важных" файла: tstcom.cs - исходник; tstcom.dll - .NET-сборка; oxp.tstcom.snk - ключи для подписки сборки; tstcom.reg - обычный файл, для загрузки в реестр сведений об СОМ-компоненте (явно сформированный какой-то утилитой, но не помню счаз - какой именно). Т.к. текстовыми являются только 1-й и 4-й - приведу их полностью: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
В результате, после подгрузки файла tstcom.reg в реестр - можно смело в Фоксе писать: Код: plaintext 1. 2. 3.
Все работает... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2004, 12:44
|
|||
---|---|---|---|
DLL на .NET для FoxPro |
|||
#18+
P.S. Только что перепроверил на другой машине (где заведомо не было установлено ничего, кроме .NET Framework v1.1), все нормально работает: 1. скопировал tstcom.dll и tstcom.reg; 2. заменил в файле tstcom.reg путь к tstcom.dll на реальный, соответствующий другой машине; 3. подгрузил tstcom.reg (наплевав на то, что GUID остался прежним, хотя можно было и его поменять при важном случае); 4. выполнил CreateObject("OXP.TSTCOM") из VB-скрипта... выполнилось успешно... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2004, 14:12
|
|||
---|---|---|---|
DLL на .NET для FoxPro |
|||
#18+
2 qu-qu устанавливать сборку в GAC нет необходимости (по крайней мере на машине разработчика). следовательно она м.б и не подписана. Опция Build / Register for COM interop при сборке проекта пишет в реестр нечто похожее что ты привел: ... [HKEY_CLASSES_ROOT\CLSID\{82F69283-9C92-3021-ACB7-CF2D8A400F06}\InprocServer32] @="mscoree.dll" "ThreadingModel"="Both" "Class"="OXP.TSTCOM" "Assembly"="TSTCOM, Version=1.0.1495.21988, Culture=neutral, PublicKeyToken= null " "RuntimeVersion"="v1.1.4322" "CodeBase"="file:///L:/a_user/Projects/OXP/TSTCOM.DLL" осталось разобратся как сборку поставлять на чистые машины. жаль нельзя использовать ту же схему что и при регистрации ocx, так бы подсунул ее InstallShield Express, а тот ее зарегистрировал. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2004, 16:21
|
|||
---|---|---|---|
DLL на .NET для FoxPro |
|||
#18+
2 snake Когда я разбирался с этой хренью, то у меня даже VS.NET на тачке не было... компилил просто исходники с помощью csc.exe из Framework SDK, запускал всякие утилитки для "подписки" строгих имен, генерения ключей с GUID-ами, и никаких опций Build / Register for COM interop даже в глаза не встречал. Поэтому и ковырялся в хелпах на предмет того - как же именно засунуть сборку с СОМ-функциональностью на "чистую" машину? Результат теперь вижу (1 файл сборки + 1 файл регистрации + готовый Framework нужной версии), но вот вспомнить - как я этого добился - не могу, извините... :-)) З.Ы. то что в GAC не обязательно пихать - это я уже "вспомнил"... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2004, 16:29
|
|||
---|---|---|---|
DLL на .NET для FoxPro |
|||
#18+
Неподписанные сборки (private assemblies) можно поставлять так: не надо никаких tlb, копируете сборку на машину и выполняете Код: plaintext
если regasm нет на машине назначения, на своей машине генерите reg файл: Код: plaintext
и далее по пунктам: http://www.sql.ru/forum/actualpost.aspx?bid=12&tid=71991&mid=0&p=1#520416 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2004, 16:33
|
|||
---|---|---|---|
DLL на .NET для FoxPro |
|||
#18+
...естесвенно Framework на машине назначения присутсвовать обязан, вот входит ли внего regasm - я без понятия. Остался вопрос: как собрать полностью корректный дистрибутив если пользуешься InstallShield Express 2qu-qu спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2004, 16:59
|
|||
---|---|---|---|
DLL на .NET для FoxPro |
|||
#18+
.. ну не "руками" же ее поставлять в самом деле. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2004, 19:01
|
|||
---|---|---|---|
|
|||
DLL на .NET для FoxPro |
|||
#18+
regasm лежит в каталоге Net Framework\ так что наверное с ней и идет (т.е. SDK или VS.Net я думаю ему не нужны) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=17&tablet=1&tid=1354228]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 239ms |
total: | 362ms |
0 / 0 |