С Новым годом! Форум программистов, компьютерный форум, киберфорум
.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
AleksS

Подключение Dll

23.10.2011, 10:50. Показов 2016. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите не могу разобраться как этим пользоваться
1. Трудность незнание правил написания (синтаксис) на языке VB.NET
2. Немогу понять как пользоваться MSDN написаны функции а пример кода нет
Если кто может помочь примерами с киньте или дайте сылку

конкретно хочу подключить cards.dll и использовать вложенные рисунки,

а по возможности подключение и использование других библиотек - примеры
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2011, 10:50
Ответы с готовыми решениями:

Дизассемблирование DLL, правка кода и компиляция его в DLL
ни разу не писал на c#, не пользовался monodeveloperом. сделано следующее: 1. дизассемблировал библиотеку name.dll, использовал...

Unable to load DLL (oci.dll). Help!
Всем привет! в чем может быть ошибка?... также ругается на вот эту строчку - oracleDataAdapter1.Fill(dataSet11); Server Error in...

TaoFramework: не удается загрузить DLL "freeglut.dll"
Не удается загрузить DLL "freeglut.dll": Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E) Все подключено но выдает это ...

2
AleksS
23.10.2011, 10:52
Примеры VB.NET а не VB6
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
23.10.2011, 16:36
Добавь в проект файл CardsHelper.vb с таким содержанием:
VB.NET
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Imports System.IO
 
 
Public NotInheritable Class CardsHelper
    Implements IDisposable
 
    Private _syncRoot As Object
    Private _hCardsModule As IntPtr
    Private _bitmapHash As Hashtable
 
 
    Public Sub New()
        _syncRoot = New Object
        _hCardsModule = IntPtr.Zero
        _bitmapHash = New Hashtable
 
        EnsureDllIsLoaded()
    End Sub
 
    Private Declare Auto Function LoadLibrary Lib "kernel32.dll" (ByVal lpModuleName As String) As IntPtr
    Private Declare Auto Function FreeLibrary Lib "kernel32.dll" (ByVal hModule As IntPtr) As Boolean
    Private Declare Auto Function LoadBitmap Lib "user32.dll" (ByVal hInstance As IntPtr, ByVal lpBitmapName As IntPtr) As IntPtr
    Private Declare Auto Function DeleteObject Lib "gdi32.dll" (ByVal hObject As IntPtr) As Boolean
 
    Private Sub EnsureDllIsLoaded()
        If _hCardsModule.Equals(IntPtr.Zero) Then
            SyncLock (_syncRoot)
                If _hCardsModule.Equals(IntPtr.Zero) Then
                    _hCardsModule = LoadLibrary("cards.dll")
                End If
            End SyncLock
        End If
 
        If _hCardsModule.Equals(IntPtr.Zero) Then
            Throw New FileNotFoundException("cards.dll")
        End If
    End Sub
 
    Public Enum Cards
        '' Крести (1 ... 13)
        AceOfClubs = 1
        Clubs2 = 2
        '' Буби (14 ... 26)
        AceOfDiamonds = 14
        Diamonds2 = 15
        '' Червы (27 ... 39)
        AceOfHearts = 27
        Hearts2 = 28
        '' Пики (40 - 52)
        AceOfSpades = 40
        Spades2 = 41
    End Enum
 
    Public Function LoadCardBitmap(ByVal card As Cards) As Bitmap
        EnsureDllIsLoaded()
 
        Dim hBitmap As IntPtr
        If _bitmapHash.Contains(card) Then
            hBitmap = CType(_bitmapHash.Item(card), IntPtr)
        Else
            hBitmap = LoadBitmap(_hCardsModule, New IntPtr(card))
        End If
 
        Return Bitmap.FromHbitmap(hBitmap)
    End Function
 
 
    Protected Overrides Sub Finalize()
        Dispose(False)
    End Sub
 
 
    Public Sub Dispose() Implements System.IDisposable.Dispose
        GC.SuppressFinalize(Me)
        Dispose(True)
    End Sub
 
 
    Private Sub Dispose(ByVal disposing As Boolean)
        If Not _hCardsModule.Equals(IntPtr.Zero) Then
            SyncLock (_syncRoot)
                If Not _hCardsModule.Equals(IntPtr.Zero) Then
                    If disposing Then
                        Dim e As IDictionaryEnumerator = _bitmapHash.GetEnumerator
                        While e.MoveNext
                            Dim hBitmap As IntPtr = CType(e.Key, IntPtr)
                            DeleteObject(hBitmap)
                        End While
                    End If
 
                    FreeLibrary(_hCardsModule)
                    _hCardsModule = IntPtr.Zero
                End If
            End SyncLock
        End If
    End Sub
End Class
Затем в классе формы добавь поле с типом CardsHelper
VB.NET
1
Private _cardsHelper As New CardsHelper
В событии Close вызов _cardsHelper.Dispose()
VB.NET
1
2
3
Private Sub Form1_Close(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Closed
    _cardsHelper.Dispose()
End Sub
Для проверки использования метода добавь на форму PictureBox и сделай вызов
VB.NET
1
PictureBox1.Image = _cardsHelper.LoadCardBitmap(CardsHelper.Cards.Clubs2)
Это отобразит двойку крестей. Список карт объявлен в классе CardsHelper в перечислении Cards. Тебе его надо будет дополнить. В скобках для каждой масти указаны числа, которые нужно использовать для карт этой масти. Эти числа являются идентификаторами ресурсов в файле cards.dll. По идее они долж
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.10.2011, 16:36
Помогаю со студенческими работами здесь

Подключение dll
Здравствуйте! Помогите пожалуйста с таким вопросом... Пытаюсь подключить dll, скомпилированную на C++, к проекту на C# следующим образом:...

Подключение DLL
Как программе указать конкретное место нахождения DLL(не в одном каталоге с .exe)? И чтобы dll там и находилась во время выполнения...

Подключение DLL на C++ к проекту
Моим преподавателем было дано задание, в котором необходимо реализовать работу с ассемблерными вставками на C#. Так как подобным ранее я ни...

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

Подключение C# dll к проекту на C++
Доброго времени суток. Прошу подсказки в создании функции на C# (DLL). Есть модуль, библиотека (dll) написанная на C++ экспортирующая...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru