Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
Я знаю, что COM/DCOM технология устарела... Но таково задание. Надо достучаться до удаленной машины ("Raspupeny") и использовать некий COM/DCOM. Как это делается на C#???? Т.е. достучаться кое как получается, но есть несколько проблем. Как достукиваюсь. Код: plaintext 1. 2. 3. 4. Вот теперь начинаются проблемы, надо передать в качестве параметра строку, в которую вернется какой-то текс. Но как это сделать??? Код: plaintext 1. 2. Естественно в ListValue ничего не возвращается, но как тогда? Согласно инструкции в одном из последних параметров можно задать ParameterModifier[] в котором соответствующие поля выстарить в pdIn, pdOut, pdLcid, pdRetval, pdOptional, and pdHasDefault соответственно. Онять таки pdIn, pdOut, pdRetval и т.д. нигде де описаны. И самое непонятное, есть функция которой не надо парамметров. Типа ClosePort(); Код: plaintext Ошибка... Что делать???? Очень надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 18:40 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
авторСогласно инструкции в одном из последних параметров можно задать ParameterModifier[] попробуй: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 19:04 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
исправлениеpm[0]=new ParameterModifier(2); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 19:06 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
кузяпопробуй указать массив нулевой длины Код: plaintext Additional information: Object reference not set to an instance of an object. кузяParameterModifier[] pm=new ParameterModifier[1]; pm[0]=new ParameterModifier(3); pm[0][0]=false; // by val : 488839203 pm[0][1]=true; // by ref : ListValue не помогло... :-(( Кстати это опечатка или именно так и надо было pm[0]=new ParameterModifier( 3 ); Зачем 3? Пробовал даже так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 19:43 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 19:54 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
этот код у меня работает (просто др. примера с возвращаемыми параметрами нет под рукой) Код: 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. посмотри комментарий к 3-й строке снизу здесь есть и вызов метода без параметров и передача параметра по ссылке все типы передаваемых параметров заданы ЯВНО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 20:13 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
Не помогает :-(( Такой вопрос, так как COM ждет строку, т.е. по большому счету дамп памяти. А в C# string это объект, может проблема именно в этом? как вообще выделить память и передать указатель на него? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 20:15 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
Кузя, огромное спасибо... Все заработало... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 20:24 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
AstakhovЯ знаю, что COM/DCOM технология устарела... <OFF> Ron Burk бывший главред WDJИстория программных революций от Microsoft, вкратце: Сначала были Windows API и DLL Hell. Революцией №1 было DDE – помните, как ссылки позволили нам создавать статусные строки, отражающие текущую цену акций Microsoft? Примерно тогда же Microsoft создала ресурс VERSION INFO, исключающий DLL Hell. Но другая группа в Microsoft нашла в DDE фатальный недостаток – его писали не они! Для решения этой проблемы они создали OLE (похожее на DDE, но другое), и я наивно вспоминаю докладчика на Microsoft-овской конференции, говорящего, что скоро Windows API перепишут как OLE API, и каждый элемент на экране будет ОСХ-ом. В OLE появились интерфейсы, исключающие DLL Hell. Помните болезнь с названием «по месту», при которой мы мечтали встроить все свои приложения в один (возможно, очень большой) документ Word? Где-то в то же время Microsoft уверовала в религию С++, возникла MFC решившая все наши проблемы еще раз. Но OLE не собиралась, сложа руки смотреть на это, поэтому оно заново родилось под именем COM, и мы внезапно поняли, что OLE (или это было DDE?) будет всегда – и даже включает тщательно разработанную систему версий компонентов, исключающую DLL Hell. В это время группа отступников внутри Microsoft обнаружила в MFC фатальный недостаток – его писали не они! Они немедленно исправили этот недочет, создав ATL, который как MFC, но другой, и попытались спрятать все замечательные вещи, которым так упорно старалась обучить нас группа COM. Это заставило группу COM (или это было OLE?) переименоваться в ActiveX и выпустить около тонны новых интерфейсов (включая интерфейсы контроля версий, исключающие DLL Hell), а заодно возможность сделать весь код загружаемым через броузеры, прямо вместе с определяемыми пользователем вирусами (назло этим гадам из ATL!). Группа операционных систем громким криком, как забытый средний ребенок, потребовала внимания, сказав, что нам следует готовиться к Cairo, некой таинственной хреновине, которую никогда не могли даже толком описать, не то, что выпустить. К их чести, следует сказать, что они не представляли концепции «System File Protection», исключающей DLL Hell. Но тут некая группа в Microsoft нашла фатальный недостаток в Java - её писали не они! Это было исправлено созданием то ли J, то ли Jole, а может, и ActiveJ (если честно, я просто не помню), точно такого же как Java, но другого. Это было круто, но Sun засудило Microsoft по какому-то дряхлому закону. Это была явная попытка задушить право Microsoft выпускать такие же продукты, как у других, но другие. Помните менеджера по J/Jole/ActiveJ, стучащего по столу туфлей и говорящего, что Microsoft никогда не бросит этот продукт? Глупец! Все это означало только одно – недостаток внимания к группе ActiveX (или это был COM?). Эта невероятно жизнерадостная толпа вернулась с COM+ и MTS наперевес (может, это стоило назвать ActiveX+?). Непонятно почему к MTS не приставили «COM» или «Active» или «X» или «+» – они меня просто потрясли этим! Они также грозились добавить + ко всем модным тогда выражениям. Примерно тогда же кое-кто начал вопить про «Windows DNA» (почему не DINA) и «Windows Washboard», и вопил некоторое время, но все это почило раньше, чем все поняли, что это было. К этому моменту Microsoft уже несколько лет с нарастающей тревогой наблюдала за интернет. Недавно они пришли к пониманию, что у Интернет есть фатальный недостаток: ну, вы поняли. И это приводит нас к текущему моменту и технологии .NET (произносится как «doughnut (пончик по-нашему)», но по-другому), похожей на Интернет, но с большим количеством пресс- релизов. Главное, что нужно очень четко понимать - .NET исключает DLL Hell. В .NET входит новый язык, C#, (выясняется, что в Active++ Jspresso был фатальный недостаток, от которого он и помер). .NET включает виртуальную машину, которую будут использовать все языки (видимо, из-за фатальных недостатков в процессорах Интел). .NET включает единую систему защиты (есть все-таки фатальный недостаток в хранении паролей не на серверах Microsoft). Реально проще перечислить вещи, которых .NET не включает. .NET наверняка революционно изменит Windows-программирование... </OFF> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2004, 22:09 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
"учение билагейтса непобедимо, потому что оно верно." Владимир Ильич Ленин. Антидюринг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 05:50 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
:-)) Здорово. Я просто искал по форуму что-то относящееся к этой теме и спрашивал у знакомых. Все в один голос твердили одно и тоже. Вот и пришлось написать, дабы пресечь критику и разглагольствования про то как COM/DCOM плохо и неудобно использовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 13:40 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
Кузя, статейка - класс!! :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 14:01 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
nexКузя, статейка - класс!! :D Да, ещё раз с большим удовольствием перечитал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 16:47 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
Помнится, я где то читал такую статейку на инглише :). Если не ошибаюсь, это было во введении к книге "Inside C#" ;) Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 19:42 |
|
||
|
COM/DCOM
|
|||
|---|---|---|---|
|
#18+
[OFF] Помнится, я где то читал такую статейку на инглише :). Если не ошибаюсь, это было во введении к книге "Inside C#" ;) Навряд ли :-) Inside C# - серьезная книга published by Microsoft Press. Читал книгу и статью эту не помню :-) А статью куда? в FAQ ? [/OFF] Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2004, 19:53 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32749278&tid=1438085]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 371ms |

| 0 / 0 |
