У меня недавно была проблема, когда я мог добавить значок в форму (VB6) на одном ПК, где он работал нормально, но они не смогли запустить / скомпилировать его на втором ПК.
Оказалось, что файл значка был 32-разрядным (включая альфа-канал), и это была проблема. Но я был удивлен, что это была системно-зависимая функция.
(В этом конкретном примере это была Win10 x64, которая позволяла использовать 32-разрядную иконку, и Win7 x32, которая не позволяла).
Так что теперь кажется совершенно неясным , какие значки разрешено использовать в VB6 в каких версиях Windows?
Я видел такие примеры, как этот вопрос с похожей проблемой, и этот другой вопрос описывает, какие могли быть оригинальные функции VB6, когда он был новым (?), Но Я пока не могу найти информацию, которая подробно описывает, что изменилось в зависимости от версии Windows.
Это важно, потому что нам не нужно обязательно жить в пределах ограничений (скажем) Windows XP, если мы знаем, что развертываем только в Windows 8/10. Но я также не хочу рисковать тем, что у части пользователей будут какие-то ужасные проблемы из-за этого.
Я немного углубился в это - кажется, что функция Windows API OleLoadPicturePath()
ведет себя по-разному в двух версиях Windows, которые я упоминал выше. На Win7 это будет ошибка с 32-битным значком; но на Win10 это не так. Я не уверен, есть ли другие функции API, которые также отличаются или нет.