И опять Манифест, но кое-что другое

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

И опять Манифест, но кое-что другое

Сообщение Pantalone » 17.01.2006 (Вт) 22:14

В общем дела такие:
1) Зачем обязательно встраивать файл манифеста в файл, чем плохо то что он болтается в папке с программой?
2) При использовании некоторых сторонних контролов бывает что при закрытии программы она пытается отправить отчет для Билли, а если манифеста нет то такого не происходит, почему?
3) Вот это вот галиматья:
Код: Выделить всё
Public Type tagInitCommonControlsEx
lngSize As Long
lngICC As Long
End Type

Public Declare Function InitCommonControlsEx Lib "comctl32.dll" (iccex As tagInitCommonControlsEx) As Boolean

Public Function InitCommonControlsVB() As Boolean
On Error Resume Next
Dim iccex As tagInitCommonControlsEx
iccex.lngSize = LenB(iccex)
iccex.lngICC = 512
InitCommonControlsEx iccex
InitCommonControlsVB = (err.Number = 0)
On Error GoTo 0
End Function


Можно ли ее вообще не включать в код, если в проекте используется что-то из Common Controls? Несколько раз замечал что это работает и тогда при закрытии программы никаких ошибок и попыток отослать отчет не происходит как в пункте 2.

ЗЫ: Просьба не напоминать в 1000-й раз что Common Controls 6 не поддерживают ХР стили, это уже известно и речь совсем не об этом.
ЗЫ2: ХР-контролы и в частности ХР-буттоны не предлагать, никто не просил!

Warn
Обычный пользователь
Обычный пользователь
 
Сообщения: 52
Зарегистрирован: 08.12.2005 (Чт) 20:34
Откуда: Питер

Сообщение Warn » 17.01.2006 (Вт) 22:39

А это не помогает?
Код: Выделить всё
Private Declare Function InitCommonControls Lib "comctl32.dll" [и что-то тут, не помню]

А в процедуре пишем
Код: Выделить всё
Private Sub Form_Initialize()
initcommoncontrols
End Sub

работает, когда включаешь манифест в ресурсы.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Re: И опять Манифест, но кое-что другое

Сообщение Alexanbar » 17.01.2006 (Вт) 22:47

Pantalone писал(а):
Код: Выделить всё
Public Type tagInitCommonControlsEx
lngSize As Long
lngICC As Long
End Type

Public Declare Function InitCommonControlsEx Lib "comctl32.dll" (iccex As tagInitCommonControlsEx) As Boolean

Public Function InitCommonControlsVB() As Boolean
On Error Resume Next
Dim iccex As tagInitCommonControlsEx
iccex.lngSize = LenB(iccex)
iccex.lngICC = 512
InitCommonControlsEx iccex
InitCommonControlsVB = (err.Number = 0)

E R R. C L E A R


On Error GoTo 0
End Function


[/b]

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 18.01.2006 (Ср) 13:55

Короче на вопросы так никто и не ответил толком.
Еще выяснилось что эта "галиматья" содержит ошибки, хотя пол инета ее юзают :)

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 18.01.2006 (Ср) 13:56

1) Потому что не всякий полезет в EXE шаловливыми ручонками поковыряться. А в папке с EXE ковыряются все кому не лень. Юзеры частенько удаляют, модифицируют, перемещают "ненужный" файл с непонятным расширением .manifest.

2) Причин множество. Например, если не подключен ни один из Windows Common Controls, обязательно надо LoadLibrary("comctl32.dll") перед открытием формы. Иначе при закрытии "вылетит" с задушевным сообщением "Память не может быть 'read'..."

3) Лучше включать, потому как лотерея:
Насколько помню, MSDN писал(а):Using Windows XP Visual Styles in Visual Basic applications is unsupported yet possible.
Моду создают модоки, а распространяют модозвоны.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 20.01.2006 (Пт) 14:59

Насчет 3, почему лотерея? Пока что работает.


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот и гости: 150

    TopList