12 / 12 / 0
Регистрация: 06.05.2011
Сообщений: 250
1

Вызов функции из dll. Dll не определена в коде и подключается программно

30.12.2011, 12:36. Показов 3268. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я написал простую функцию которая возвращает негатив bitmap'а

VB.NET
1
2
3
4
5
6
7
8
9
10
11
Function Negative(ByVal Bmp As Bitmap)
        Dim Bmp2 As New Bitmap(Bmp.Width, Bmp.Height)
        Dim C As Color
        For y = 0 To Bmp2.Height - 1
            For x = 0 To Bmp2.Width - 1
                C = Bmp.GetPixel(x, y)
                Bmp2.SetPixel(x, y, Color.FromArgb(255 - C.R, 255 - C.G, 255 - C.B))
            Next
        Next
        Return Bmp2
End Function
создал проект - библиотека классов, вставил туда этот код

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Class Class1
Function Negative(ByVal Bmp As Bitmap)
        Dim Bmp2 As New Bitmap(Bmp.Width, Bmp.Height)
        Dim C As Color
        For y = 0 To Bmp2.Height - 1
            For x = 0 To Bmp2.Width - 1
                C = Bmp.GetPixel(x, y)
                Bmp2.SetPixel(x, y, Color.FromArgb(255 - C.R, 255 - C.G, 255 - C.B))
            Next
        Next
        Return Bmp2
End Function
End Class
и скомпилировал в "neg.dll". Как мне её подключить в своем проекте, чтобы я мог писать так
VB.NET
1
2
3
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.BackgroundImage = Negative(Me.BackgroundImage)
End Sub
???
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2011, 12:36
Ответы с готовыми решениями:

Inject dll, а также вызов функции из этой же dll
Всем привет, заинжектить dll в другой процесс получилось, но еще необходимо вызвать функцию в этой...

Вызов функции DLL VB.NET в DLL C++
Как вызывать функции dll VB.NET через dll С++, которая приинжекчена к процессу проводника?

Вызов программой, написанной на С++, функции из dll, написанной на Assembler (явное подключение dll)
Доброго времени суток!Задали лабораторную работу: программа, написанная на с++ должна подключать...

Ошибка об отсутствии MSVCP140D.dll, ucrtbased.dll, CONCRT140D.dll, VCRUNTIME140D.dll
Добрый день, товарищи. Возникла проблема. Делаю программу с использованием openCV 3.1 на Visual...

9
_
2364 / 1242 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
30.12.2011, 12:51 2
chiribas, через Add Reference - нажимаешь на проект выбираешь пункт Add Reference, находишь местопложение твоей библиотеки dll и добавляешь ее в проект. Потом в коде пишешь, что-то типа
VB.NET
1
Class1.Negative........
0
Почетный модератор
21379 / 9113 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
30.12.2011, 12:57 3
Цитата Сообщение от chiribas Посмотреть сообщение
негатив
больше позитива, как-никак 2012 на носу.

Чтобы начать пользоваться своей библиотекой, ее надо подключить в референсах:
Проект - Добавить ссылку.
Выбираешь свою.

В редакторе кода надо ее импортировать
VB.NET
1
Imports<Библа>
Далее в классе формы
VB.NET
1
Dim MyLib As New <Твоя библа>
Ну и в коде
VB.NET
1
Me.BackgroundImage = MyLib.Negative(Me.BackgroundImage)
Я мог все перепутать конечно же

Добавлено через 43 секунды

Не по теме:

Eugene22, ты опять эту аву поставил

1
Eugene22
30.12.2011, 13:00
  #4

Не по теме:

Цитата Сообщение от Памирыч Посмотреть сообщение
Eugene22, ты опять эту аву поставил
а почему бы нет?

2
12 / 12 / 0
Регистрация: 06.05.2011
Сообщений: 250
30.12.2011, 13:08  [ТС] 5
Хотелось бы динамически подключить.
Например рядом с моим приложением есть папка в которой лежит несколько таких dll с эффектами, при загрузки формы моя программа создаёт пункты в меню, которые соответствуют этим эффектам (эт я могу), но как сделать чтобы при нажатии на эти кнопки выполнялся эффект?
0
_
2364 / 1242 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
30.12.2011, 13:12 6
chiribas, почему бы все эти эффекты не определить в одной библиотеке и не мучится с динамическим подключением, а подключить один раз.
0
12 / 12 / 0
Регистрация: 06.05.2011
Сообщений: 250
30.12.2011, 13:20  [ТС] 7
Чтобы когда придумаеш новый эффект, не надо была весь проект редактировать, а просто кинул dll в папку эффекты и всё! Так как его подключить?
0
_
2364 / 1242 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
30.12.2011, 13:59 8
Цитата Сообщение от chiribas Посмотреть сообщение
Чтобы когда придумаеш новый эффект, не надо была весь проект редактировать, а просто кинул dll в папку эффекты и всё! Так как его подключить?
А так никак не получится, чтобы просто в папку кинул и все. Это все равно, что сидеть, щелкнуть пальцами и вот готова программа. По любому что-то придется изменять и в случае с динамической компиляцией мороки гораздо больше.
А так ты просто добавляешь в проект библиотеки новый класс, перекомпилируешь его и кладешь новый файл библиотеки уже проект приложения на место старого
0
12 / 12 / 0
Регистрация: 06.05.2011
Сообщений: 250
30.12.2011, 14:31  [ТС] 9
Цитата Сообщение от Eugene22 Посмотреть сообщение
А так никак не получится, чтобы просто в папку кинул и все.
VB.NET
1
IO.Directory.GetFiles("Effect", "*.dll", IO.SearchOption.TopDirectoryOnly)
- получаеш все файлы в папке Effect, и в цикле добавляеш пункт меню с именим N-ного по сщету файла, и както подключаеш. Вот только как?
0
_
2364 / 1242 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
30.12.2011, 15:47 10
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от chiribas Посмотреть сообщение
получаеш все файлы в папке Effect, и в цикле добавляеш пункт меню с именим N-ного по сщету файла, и както подключаеш.
Динамическая компиляция описывалась тут. Хотя не думаю, что тебе это сильно поможет.

Добавлено через 20 минут
Плюс еще в этом посте можешь посмотреть
3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2011, 15:47
Помогаю со студенческими работами здесь

Вызов функции из DLL
Всем привет! Есть такая функция в DLL: IMPORTDLL int PIRITLIB_CALL openPort(char *fileName, long...

Вызов функции с DLL
Сразу говорю пишу программу как и *.dll в VisualStudio 2010. Суть: написал dll, вроде-бы все...

Вызов функции из DLL
Здравствуйте. Я, вообще-то, на Си не писал никогда. Для моих нужд хватало делфи и VB, но тут...

Вызов функции из DLL
Привет. Почему не получается вызвать DllImport из метода? using System; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru