Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > как вызвать метод из dll


Автор: Nikitozz 3.11.2008, 14:03
Люди помогите! Я спать хочу! Со вчерашнего вчерашнего дня сижу и не могу разобраться в чем ошибка...

написал простенькую dll-ку такого вида:
Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace interOne
{
    public class firstclass
    {
        int func()
        {
            return 1;
        }
    }
}


также написал простенькую программку, там должен вызваться метод func() из длл и значение 1 (которое возвращается методом) должно появиться в текстБоксе, все это при нажатии кнопки...

программка:
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using interOne;

namespace DesktopController
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int a = func(); //   <--- Пишет что здесь ошибка
            textBox1.Text = a.ToString();      
        }
    }
}


Уже не знаю че делать. ДДЛ-ку добавил в References. Главное прогрммка видите пространство имен в ДЛЛ-ке, класс, но func() вызвать не может, пишет: The name 'func' does not exist in the current context

Уже чего только не пробовал, все варианты которые пришли в голову перепробовал, облазил этот форум, другие, половину Рунета. ничего не помогает.
Помогите пожалуйста!!

Автор: Partizan 3.11.2008, 14:10
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using interOne;
namespace DesktopController
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            firstclass cl = new firstclass();
            int a = cl.func(); //   <--- Пишет что здесь ошибка
            textBox1.Text = a.ToString();      
        }
    }
}

Автор: Nikitozz 3.11.2008, 14:14
Partizan, делал и так тоже

'interOne.firstclass' does not contain a definition for 'func' and no extension method 'func' accepting a first argument of type 'interOne.firstclass' could be found (are you missing a using directive or an assembly reference?)

вот так вот он ругается на этот способ...

В reference длл-ку добавил...

Автор: Dims 3.11.2008, 14:35
Вы сначала напишите и отладьте то же самое в ОДНОМ проекте, но в разных namespace. И когда заработает, тогда выложьте класс в точности в DLL.

Сейчас мне кажется, что проблема в том, что метод func не является public.


Автор: Nikitozz 3.11.2008, 14:38
Цитата(Dims @  3.11.2008,  14:35 Найти цитируемый пост)
Сейчас мне кажется, что проблема в том, что метод func не является public.


Спасибо огромное, получилось. Ну я и тормоз, надо спать ложиться, видимо мозг уже не работает.
Dims, спасибо!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)