Ресурсы на VB8

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Ресурсы на VB8

Сообщение Роман-вб » 04.04.2006 (Вт) 21:02

В VB6 добавлял ресурсы через Resource Editor. Потом использовал
Код: Выделить всё
LoadResData(101, "CUSTOM")

, и всё работало. Как на VB8(VB2005) работать с ресурсами?
И ещё: если я использую файл *.res, а не *.resx, то как быть?
Заранее благодарю!
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

Vinechka
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 381
Зарегистрирован: 10.05.2005 (Вт) 4:07
Откуда: Москва

Сообщение Vinechka » 05.04.2006 (Ср) 2:24

Хм, ну простейшее на мой взгляд (если сохраняя элементарность вб6), то это my.resources. Ну а кидаем туда из "My Project" -> Resources. Однако, несмотря на то, что в этом ресорс эдиторе по типам некоторым есть разделение ресурсов (иконки отдельно, пикчи отдельно) возможность всунуть пару ресов с одним именем есть. Что в конечном итоге приведет к проблеме, при использовании ресурсов через my.resource.[resource_name] (у меня например были два объекта - один пикча, другой икон; в коде использовались неплохо, но в определенный момент студия заявила, что не может преобразовать тип икон в пикчу и отказалась компилить проект; рестарт студии тоже не помог и пришлось переименовывать объект и изменять код).

Также на my.resources.recourcemanager советую посмотреть - вдруг чего нужное увидишь.

My - рулит :roll: 8)

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 05.04.2006 (Ср) 8:55

Выбери Project -> Add Reference... -> Microsoft.VisualBasic.Compatibility
И продолжай использовать Microsoft.VisualBasic.Compatibility.VB6.Support.LoadResData
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 05.04.2006 (Ср) 15:09

Nord777 писал(а):Выбери Project -> Add Reference... -> Microsoft.VisualBasic.Compatibility
И продолжай использовать Microsoft.VisualBasic.Compatibility.VB6.Support.LoadResData

Это как раз я и использую. В добавок к этому, я использую файл *.res и в строке
Код: Выделить всё
ReDim bAudioArr(UBound(VB6.LoadResData(101, "CUSTOM")))
происходит ошибка "Resource with identifier 'CUSTOM_101' not found". Я не понимаю, откуда 'CUSTOM_101', ессли у меня ресурс типа Custom и ID = 101
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 05.04.2006 (Ср) 21:01

У меня таже самая ошибка :(
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 06.04.2006 (Чт) 9:37

А что тебе мешает извлечь все ресурсы из .RES файла при помощи Restorator или Resource Hacker, а потом из них сделаешь в студии .RESX
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Роман-вб
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 520
Зарегистрирован: 04.04.2006 (Вт) 9:40
Откуда: Средняя полоса

Сообщение Роман-вб » 06.04.2006 (Чт) 12:30

Nord777
не в этом дело. Ну, допустим есть у меня этот RESX файл. Как с ним работать?
P.S. Относительно RES-файлов могу сказать, что VS8 идентифицирует их как файл ресурсов. Отсюда вывод: как-то же можно с ними работать.
Жить ещё 2 недели, работы на 8 лет, но я докажу на деле, на что способен аскет!

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 06.04.2006 (Чт) 22:21

Если у тебя они отдельно от проекта, то примерно так:
Код: Выделить всё
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Bm As Bitmap = Nothing
        Bm = GetBitmapResource("myres.resx", "img1")

    End Sub

    Private Function GetBitmapResource(ByVal FileName As String, ByVal ResName As String) As Bitmap
        Dim RsxR As New ResXResourceReader(FileName)
        Dim id As IDictionaryEnumerator = RsxR.GetEnumerator()
        Dim Bmp As Bitmap = Nothing

        Dim d As DictionaryEntry

        For Each d In RsxR
            If (TypeOf d.Value Is Bitmap) And (ResName = d.Key) Then
                Bmp = CType(d.Value, Bitmap)
            End If
        Next d

        RsxR.Close()
        Return Bmp
    End Function


А вот что пишет Студия про файл .RES когда пытаешся его открыть:
The Managed Resource Editor does not support the requested file type.
По ходу в Microsoft решили откреститься от нерадивого ребенка:)
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList