![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
lumenxp |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.4.2010 Репутация: нет Всего: нет |
Здравствуйте.
Возможно вопрос и не сложный, но я не так давно знаком с С#. Как правильно подключить COM объект к С#. Использую VS2008. Вот пример из мануала
Подскажите что означает строка "private S7ProSim ps;" Далее для подключения функций в том же мануале производитель пишет
Но я так понял это код C++ и в C# он не совсем хорошо воспринимается. Во вложении мануал. Присоединённый файл ( Кол-во скачиваний: 12 ) ![]() |
||||
|
|||||
lumenxp |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.4.2010 Репутация: нет Всего: нет |
Модификатор "private" запрещает доступ к полям и методам класса извне самого класса.
С эти стало яснее. Как быть со строкой использования методов из COM объекта S7PROSIMLib??? |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 7 Всего: 306 |
C# и платформа .NET. Библиотека программиста Троелсен Э.
Глава 12. Взаимодействие с унаследованным программным кодом. так же:кошерная ссылка |
|||
|
||||
lumenxp |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.4.2010 Репутация: нет Всего: нет |
Еще раз повторюсь что совсем недавно работаю с C#.
Ссылку на COM я добавил в самом начале. Я не знаю как изменить код
или
для того что бы С# это понял. Есть ли примеры? Это сообщение отредактировал(а) lumenxp - 9.4.2010, 12:51 |
||||
|
|||||
lumenxp |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.4.2010 Репутация: нет Всего: нет |
Порыскал и нашел примеры.
Щас следующий косяк
Вот что выдал компилятор. ошибка CS0120: Для нестатического поля, метода или свойства "TestS7.TestS7App.ps" требуется ссылка на объект (Связанное местоположение) Help!!! |
|||
|
||||
KelTron |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 9 Всего: 38 |
Либо:
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
||||
|
|||||
lumenxp |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.4.2010 Репутация: нет Всего: нет |
Спасибо!!!
Я дико извиняюсь но при усложнении кода возникли аналогичные ошибки
Теперь ругается на vData. Это сообщение отредактировал(а) lumenxp - 10.4.2010, 17:20 |
|||
|
||||
KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 9 Всего: 38 |
Функция Main статическая, это значит что в ней можно обращаться только к статическим членам класса, т.е. тебе нужно либо vData сделать статической переменной, либо создавать экземпляр в функции Main. Также как и S7ProSimClass ps.
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
lumenxp |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.4.2010 Репутация: нет Всего: нет |
Еще раз спасибо KelTron.
Вобщем сделал как вы сказали
Такие извращения с методом необходимы для того что бы приготовленную мной dll-ку мог скушать матлаб. Подробнее я тут отписался http://forum.vingrad.ru/forum/topic-282027...2133591/15.html Возникла новая проблема CS1503: Аргумент "3": преобразование типа из "ref bool" в "ref object" невозможно Я делаю dll-ку на основании уже готового рабочего кода пиложения с экранной формой.
Это сообщение отредактировал(а) lumenxp - 12.4.2010, 09:45 |
||||
|
|||||
KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 9 Всего: 38 |
Не совсем так... Вообще я уже не понимаю где код, который ты используешь, везде разные куски какие то, приведи полный код, тогда уже можно будет что то сказать. -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
lumenxp |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.4.2010 Репутация: нет Всего: нет |
Извините за путаницу.
Код который сейчас использую
Ошибка при данном коде CS1503: Аргумент "3": преобразование типа из "ref bool" в "ref object" невозможно Такое извращение с методами
необходимо для использования dll-ки в Matlab |
||||
|
|||||
KelTron |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 9 Всего: 38 |
Мне непонятно что вот это такое, в чём тут смысл?:
Такое попробуй:
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
||||
|
|||||
lumenxp |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.4.2010 Репутация: нет Всего: нет |
Дело в том что параметр функции ps.WriteInputPoint под названием vData должен быть object. В противном случае компилятор говорит что
Наиболее подходящий перегруженный метод для "S7PROSIMLib.S7ProSimClass.WriteInputPoint(int, int, ref object)" имеет несколько недопустимых аргументов Аргумент "3": преобразование типа из "ref bool" в "ref object" невозможно |
|||
|
||||
KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 9 Всего: 38 |
Смотри код внимательней...
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
lumenxp |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 7.4.2010 Репутация: нет Всего: нет |
Еще раз спасибо!
Простите за невнимательность, и за возможно глупые вопросы. Указанная вам конструкция действительно заработала. Я начал усложнять программу и вот что получилось
Ошибка компилятора
Дилитанская попытка вставить S7ProSimClass ps = new S7ProSimClass(); привела к компиляции, но метод так и не отработал. |
||||
|
|||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |