C# Ошибка "Нет перегруженного метода .., который соответствует делегату .."
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > C# Ошибка "Нет перегруженного метода .., который соответствует делегату .."

C# Ошибка "Нет перегруженного метода .., который соответствует делегату .."

Ответ
Поиск в этой теме
Непрочитано 20.09.2013, 14:49 #1
C# Ошибка "Нет перегруженного метода .., который соответствует делегату .."
Nadinka
 
инженер-технолог
 
на севере
Регистрация: 24.07.2013
Сообщений: 17

Здравствуйте, уважаемые программисты!
Обращаюсь к вам за помощью, особенно к Вам, Алексей aka kpblc (может вспомните меня, Вы этим маем в Инфарс г.Москва у нас преподавали курс)
Я инженер-технолог отдела САПР, который неудачно пожелал начать программировать под автокад)))
Начальство сразу поставило задачку (еще в начале лета) - адаптировать, созданную панельку для AutoCAD 2009-2011 (которая формирует таблицу экспликацию зданий и сооружений) под более поздние версии AutoCAD 2013. Код написан на C#, как мне объяснили на скорую руку. Если надо объяснить суть работы панельки, то постараюсь объяснить позже, но пока мне кажется может кто-то сможет и так сразу подсказать где копать..
В общем сейчас под 2011-й автокад панелька работает прекрасно. Под 13-й панель уже не работает, надо подключать другие библиотеки и т.д. Я вроде б всё нашла и заменила всё необходимое, из 60 ошибок и 100 предупреждений, осталась только одна ошибка - "Ошибка 38 Нет перегруженного метода для "docColDocDeact", который соответствует делегату "Autodesk.AutoCAD.ApplicationServices.DocumentCollectionEventHandler" ..\SAPRLibrary\Class1.cs"
Как помните, у меня совершенный ноль в програмировании на C#.. но, к сожалению, кроме как к вашему форуму, если честно обратиться не кому Понимаю, что может быть одного кода файла Class1.cs будет не достаточным и может спрашиваю элементарное, но все равно прошу вашей помощи. Спасибо!

Код:
[Выделить все]
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Windows;
using Autodesk.AutoCAD.Interop;

namespace SAPRLibrary
{
    public class Class1 : IExtensionApplication
    {
        Autodesk.AutoCAD.Windows.PaletteSet ps = null;
        System.Windows.Forms.UserControl myCtrlsnos = null;
        System.Windows.Forms.UserControl myCtrlpir = null;

        public void Initialize()
        {
        }

        public void Terminate()
        {
        }

        public void docBeginDocClose(object senderObj, DocumentBeginCloseEventArgs docBegClsEvtArgs)
        {
            if (this.ps != null)
            {
                this.ps.Visible = false;
            }
        }

         void docColDocDeact(object senderObj, DocumentCollectionEventArgs docColDocActEvtArgs)
        {
            if (this.ps != null)
            {
                this.ps.Visible = false;
            }
        }

        [CommandMethod("СНОС")]
        public void listSnos()
        {
            Document acDoc = Application.DocumentManager.MdiActiveDocument;
            Editor ed = acDoc.Editor;
            try
            {
                ed.WriteMessage("\n");
                if (this.ps == null)
                {
                    ed.WriteMessage("Загрузка панели САПР ...\n");
                    this.ps = new Autodesk.AutoCAD.Windows.PaletteSet("Панель САПР");
                    this.ps.Style = PaletteSetStyles.ShowCloseButton |
                               PaletteSetStyles.ShowAutoHideButton |
                               PaletteSetStyles.ShowTabForSingle;
                    this.ps.MinimumSize = new System.Drawing.Size(222, 500);
                    //this.ps.Dock = DockSides.None;
                    myCtrlsnos = new Snos();
                    this.myCtrlpir = new pir();
                    this.ps.Add("Учет ПИР", this.myCtrlpir);
                    this.ps.Add("СНОС", myCtrlsnos);
                    this.ps.Visible = false;
                    acDoc.BeginDocumentClose += new DocumentBeginCloseEventHandler(docBeginDocClose);
                    Application.DocumentManager.DocumentToBeDeactivated += new DocumentCollectionEventHandler(docColDocDeact);
                    ed.WriteMessage("Загрузка выполнена\n");
                }
                this.ps.Visible = !this.ps.Visible;
            }
            catch
            {
                ed.WriteMessage("Ошибка отображения панели");
            }
        }

        [CommandMethod("ЗСНОС")]
        public void LoadCUI()
        {
            Document doc =
              Application.DocumentManager.MdiActiveDocument;
            Editor ed = doc.Editor;

            object oldCmdEcho = Application.GetSystemVariable("CMDECHO");
            object oldFileDia = Application.GetSystemVariable("FILEDIA");

            Application.SetSystemVariable("CMDECHO", 0);
            Application.SetSystemVariable("FILEDIA", 0);
            try
            {
                doc.SendStringToExecute(
                  "_.cuiload snos ",
                  false, false, false
                );

                doc.SendStringToExecute(
                  "(setvar \"FILEDIA\" "
                  + oldFileDia.ToString()
                  + ")(princ) ",
                  false, false, false
                );
                doc.SendStringToExecute(
                  "(setvar \"CMDECHO\" "
                  + oldCmdEcho.ToString()
                  + ")(princ) ",
                  false, false, false
                );
            }
            catch (Autodesk.AutoCAD.Runtime.Exception e)
            {
                ed.WriteMessage("Ошибка загрузки кнопки " + e.Message);
            }
            finally
            {
                ed.WriteMessage("СНОС установлен.");
            }
        }
    }
}
Просмотров: 10680
 
Непрочитано 20.09.2013, 15:37
#2
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


У меня код выдал 2 ошибки:
Ошибка 1 Не удалось найти имя типа или пространства имен "Snos" (пропущена директива using или ссылка на сборку?)
Ошибка 2 Не удалось найти имя типа или пространства имен "pir" (пропущена директива using или ссылка на сборку?)
В остальном - порядок.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 20.09.2013, 16:08
#3
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Скорее всего надо повнимательней посмотреть на ссылки библиотек.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 20.09.2013, 18:25
#4
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Код:
[Выделить все]
  public void docColDocDeact(object senderObj, DocumentCollectionEventArgs docColDocActEvtArgs)
        {
            if (this.ps != null)
            {
                this.ps.Visible = false;
            }
        }
Ээээ?...
gomer вне форума  
 
Непрочитано 21.09.2013, 00:18
#5
Sfinks7s1

VB, C++, C#, Java
 
Регистрация: 19.04.2013
Санкт-Петербург
Сообщений: 48
Отправить сообщение для Sfinks7s1 с помощью Skype™


В AutoCAD 2013 часть функционала вынесена в AcCoreMgd.dll, подключите её.
В настройках подключенных библиотек следует отключить их локальное копирование.

#region Assembly accoremgd.dll, v19.0.0.0
// C:\Program Files\Autodesk\AutoCAD 2013\accoremgd.dll
#endregion

using System;

namespace Autodesk.AutoCAD.ApplicationServices
{
public delegate void DocumentCollectionEventHandler(object sender, DocumentCollectionEventArgs e);
}

Последний раз редактировалось Sfinks7s1, 21.09.2013 в 00:33.
Sfinks7s1 вне форума  
 
Непрочитано 21.09.2013, 01:51
#6
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Эх, не мое это все эти щи... Один вопрос не в тему: причем тут командная строка?

Цитата:
Сообщение от Nadinka Посмотреть сообщение
try
{
doc.SendStringToExecute(
"_.cuiload snos ",
false, false, false
);

doc.SendStringToExecute(
"(setvar \"FILEDIA\" "
+ oldFileDia.ToString()
+ ")(princ) ",
false, false, false
);
doc.SendStringToExecute(
"(setvar \"CMDECHO\" "
+ oldCmdEcho.ToString()
+ ")(princ) ",
false, false, false
);
}
gomer вне форума  
 
Непрочитано 21.09.2013, 11:00
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


gomer, неизвестно, как и когда загружается сборка. Вполне может оказаться, что документ еще не инициирован, поэтому SensStringToExecute попросту не сработает.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.09.2013, 15:59
#8
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Вот, так тем более, зачем включать лисповые куски в .нет-приложение
gomer вне форума  
 
Непрочитано 21.09.2013, 19:43
#9
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


Ой, извини Значит, моя фраза переадресовывается автору темы.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 23.09.2013, 06:55
#10
Nadinka

инженер-технолог
 
Регистрация: 24.07.2013
на севере
Сообщений: 17


Цитата:
Сообщение от Do$ Посмотреть сообщение
У меня код выдал 2 ошибки:
Ошибка 1 Не удалось найти имя типа или пространства имен "Snos" (пропущена директива using или ссылка на сборку?)
Ошибка 2 Не удалось найти имя типа или пространства имен "pir" (пропущена директива using или ссылка на сборку?)
В остальном - порядок.
А вы тестировали с 13-м автокадом? Если да, то это здорово, что у Вас не возникло ошибки как у меня и может подскажете какие у вас подключены библиотеки, а эти две ошибки понятны, у Вас нет этих файлов.

Цитата:
Сообщение от Gomer
Эх, не мое это все эти щи... Один вопрос не в тему: причем тут командная строка?
Потому что с командной строки запускается панель, т.к. пользователю она не всегда нужна. И еще раз повторю, мне в руки попал этот код вот в таком виде, моя задача - чтобы он работал под 13-й автокад..

Цитата:
Сообщение от Sfinks7s1
В AutoCAD 2013 часть функционала вынесена в AcCoreMgd.dll, подключите её.
В настройках подключенных библиотек следует отключить их локальное копирование.
У меня подключена эта библиотека в ссылках. Можно поподробнее как именно отключить их локальное копирование?


Цитата:
Сообщение от Кулик Алексей aka kpblc
неизвестно, как и когда загружается сборка. Вполне может оказаться, что документ еще не инициирован, поэтому SensStringToExecute попросту не сработает.
Не знаю, вроде всё нормально загружается. Ведь повторюсь под 11-й автокад всё работает без проблем и я не программист .. Я думаю тут все-таки надо нормально настроить библиотеки и некоторые команды, функции и т.д.

Цитата:
Сообщение от Do$
Вот, так тем более, зачем включать лисповые куски в .нет-приложение


Может быть надо выслать всё остальное, чтобы более детально рассмотреть мою проблему? Не знаю чем вам еще помочь, чтобы вы помогли мне
Миниатюры
Нажмите на изображение для увеличения
Название: библиотеки.png
Просмотров: 3250
Размер:	26.2 Кб
ID:	112592  

Последний раз редактировалось Nadinka, 23.09.2013 в 08:00.
Nadinka вне форума  
 
Непрочитано 23.09.2013, 08:15
#11
hexD

КМД
 
Регистрация: 26.03.2013
Я ЖЫВУ В РОССИИ.
Сообщений: 506
<phrase 1=


параметры делегата docColDocDeact не соответствуют ожидаемым -
смотреть тип Autodesk.AutoCAD.ApplicationServices.DocumentCollectionEventHandler

сигнатуры делегатов определены(т.е. это ДАНО), вы привязываете обработчик с несоответствующими параметрами, -> как его иполнять компилятор не знает...

возможно некоторые сигнатуры в очередной редакции АПИ больше не поддерживаются...

(Название для метода убийственное просто)
hexD вне форума  
 
Непрочитано 23.09.2013, 11:51
1 | #12
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Nadinka Посмотреть сообщение
У меня подключена эта библиотека в ссылках. Можно поподробнее как именно отключить их локальное копирование?
В свойствах для первых 3-х dll установить свойство "Копировать локально" в значение false.

Цитата:
Сообщение от Nadinka Посмотреть сообщение
А вы тестировали с 13-м автокадом? Если да, то это здорово, что у Вас не возникло ошибки как у меня и может подскажете какие у вас подключены библиотеки, а эти две ошибки понятны, у Вас нет этих файлов.
Я проверял с библиотеками 2014 версии. В Вашем случае, судя по картинке, все нужные dll уже подключены. Если бы чего-то не хватало, компилятор бы сообщил об этом.

P.S. Советую ознакомиться с видеоматериалами: http://www.autodesk.ru/adsk/servlet/...36&id=18077292. Там для VB вроде, но для C# все аналогично.
Миниатюры
Нажмите на изображение для увеличения
Название: библиотеки.png
Просмотров: 102
Размер:	30.6 Кб
ID:	112604  
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)

Последний раз редактировалось Do$, 23.09.2013 в 13:38.
Do$ вне форума  
 
Автор темы   Непрочитано 24.09.2013, 08:18
#13
Nadinka

инженер-технолог
 
Регистрация: 24.07.2013
на севере
Сообщений: 17


Цитата:
Сообщение от Do$ Посмотреть сообщение
В свойствах для первых 3-х dll установить свойство "Копировать локально" в значение false.


Я проверял с библиотеками 2014 версии. В Вашем случае, судя по картинке, все нужные dll уже подключены. Если бы чего-то не хватало, компилятор бы сообщил об этом.

P.S. Советую ознакомиться с видеоматериалами: http://www.autodesk.ru/adsk/servlet/...36&id=18077292. Там для VB вроде, но для C# все аналогично.
Спасибо всем большое за ответы, особенно Do$! Ваш, совет помог мне решить мою проблему.В общем проблема была только в подключаемых библиотеках..
Nadinka вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > C# Ошибка "Нет перегруженного метода .., который соответствует делегату .."

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Несоответствие результатов в Лире s.vas Лира / Лира-САПР 19 11.11.2009 07:31
Помощь по Лире Серега М Лира / Лира-САПР 52 28.05.2007 02:47