Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / PNG изображения в стандартных контролах VB6. / 25 сообщений из 28, страница 1 из 2
25.01.2019, 11:19
    #39764818
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
YouTube Video
...
Рейтинг: 0 / 0
25.01.2019, 11:56
    #39764841
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
Файлы на гитхабе битые. В кодировке Unix(LF). VB их не понимает. Перезалей плиз архив в другое место.
...
Рейтинг: 0 / 0
25.01.2019, 12:30
    #39764869
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
Test_EXE_Linked - не билдится:

авторMicrosoft (R) Incremental Linker Version 14.16.27026.1
Copyright (C) Microsoft Corporation. All rights reserved.

LINK : warning LNK4010: invalid subsystem version number 4.0; default subsystem version assumed
LINK : fatal error LNK1104: cannot open file 'kernel32.lib'
...
Рейтинг: 0 / 0
25.01.2019, 12:46
    #39764886
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
Проект Test_EXE_Dll и Test_EXE_Linked открываются у меня с ошибкой

автор'C:\Downloads\VbPng-master\VbPng-master\VbSources\Test_EXE_Dll\comctl32.Ocx' could not be loaded--Continue Loading Project?

Помогло понижение версии comctl32 в VBP файле.

Код: vbnet
1.
Object={6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.5#0; comctl32.Ocx



поменять на:

Код: vbnet
1.
Object={6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.4#0; comctl32.Ocx
...
Рейтинг: 0 / 0
25.01.2019, 12:52
    #39764897
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
Насколько помню, стандартная библиотека для этих целей называется gdiplus.dll

Все необходимое для работы с изображениями там есть.
...
Рейтинг: 0 / 0
25.01.2019, 13:09
    #39764911
ЦЦа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
ATM-TURBO 2,

по крайней мере часть use cases закрывается конвертированием PNG в EMF, имеющем внутри себя EMR_ALPHABLEND ( ту же AlphaBlend()) с тем же DIB в PixelFormat32bppPARGB. Пример на форуме: 10895839 . Это один модуль с run-time зависимостью от GDI+.
...
Рейтинг: 0 / 0
25.01.2019, 13:14
    #39764919
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
EoltTest_EXE_Linked - не билдится:

авторMicrosoft (R) Incremental Linker Version 14.16.27026.1
Copyright (C) Microsoft Corporation. All rights reserved.

LINK : warning LNK4010: invalid subsystem version number 4.0; default subsystem version assumed
LINK : fatal error LNK1104: cannot open file 'kernel32.lib'

Исправил, это было из-за неправильной конфигурации git
...
Рейтинг: 0 / 0
25.01.2019, 13:16
    #39764922
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
В 2017 студии VBPng не собирается. Просит (Platform Toolset = 'v100').

автор1>------ Rebuild All started: Project: VBPng, Configuration: ReleaseDll Win32 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(65,5): error MSB8020: The build tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found. To build using the v100 build tools, please install Visual Studio 2010 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution".
1>Done building project "VBPng.vcxproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
...
Рейтинг: 0 / 0
25.01.2019, 13:21
    #39764927
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
ЦЦаНасколько помню, стандартная библиотека для этих целей называется gdiplus.dll

Все необходимое для работы с изображениями там есть.
Ну и? Модуль как раз и использует gdi+ в описании же написано.

ЦЦаATM-TURBO 2,

по крайней мере часть use cases закрывается конвертированием PNG в EMF, имеющем внутри себя EMR_ALPHABLEND ( ту же AlphaBlend()) с тем же DIB в PixelFormat32bppPARGB. Пример на форуме: 10895839 . Это один модуль с run-time зависимостью от GDI+.
Не понимаю причем тут это.
...
Рейтинг: 0 / 0
25.01.2019, 13:24
    #39764931
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
EoltВ 2017 студии VBPng не собирается. Просит (Platform Toolset = 'v100').

автор1>------ Rebuild All started: Project: VBPng, Configuration: ReleaseDll Win32 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(65,5): error MSB8020: The build tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found. To build using the v100 build tools, please install Visual Studio 2010 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution".
1>Done building project "VBPng.vcxproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Ну выбери свой набор, я просто в 2010 собирал:
...
Рейтинг: 0 / 0
25.01.2019, 13:26
    #39764933
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
ATM-TURBO 2,

да сейчас попробую, просто некоторые проекты после смены платформы перестают собираться почему-то
...
Рейтинг: 0 / 0
25.01.2019, 13:41
    #39764946
ЦЦа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
ATM-TURBO 2ЦЦаНасколько помню, стандартная библиотека для этих целей называется gdiplus.dll

Все необходимое для работы с изображениями там есть.
Ну и? Модуль как раз и использует gdi+ в описании же написано.Не я автор цитаты.

ATM-TURBO 2Не понимаю причем тут это.При том, что размах могуч, но при рассмотрении случаев реальных применений может оказаться, что слишком могуч, и можно обойтись меньшей кровью и прочим геморроем.
...
Рейтинг: 0 / 0
25.01.2019, 13:43
    #39764948
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
Platform Toolset: Visual Studio 2017 (v141)

Ошибка при ребилде:

автор1>------ Rebuild All started: Project: VBPng, Configuration: ReleaseDll Win32 ------
1>CHooker.cpp
1>CPicture.cpp
1>c:\users\alex\downloads\vbpng-master (1)\vbpng-master\vbpnglibcpp\cpicture.cpp(68): warning C4244: '+=': conversion from 'LONGLONG' to 'DWORD', possible loss of data
1>c:\users\alex\downloads\vbpng-master (1)\vbpng-master\vbpnglibcpp\cpicture.cpp(223): warning C4533: initialization of 'rc' is skipped by 'goto CleanUp'
1>c:\users\alex\downloads\vbpng-master (1)\vbpng-master\vbpnglibcpp\cpicture.cpp(178): note: see declaration of 'rc'
1>c:\users\alex\downloads\vbpng-master (1)\vbpng-master\vbpnglibcpp\cpicture.cpp(223): note: see declaration of 'CleanUp'
1>dllmain.cpp
1>ldasm.cpp
1>VBPng.cpp
1>LINK : fatal error LNK1181: cannot open input file 'msvcrt_winxp.obj'
1>Done building project "VBPng.vcxproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
...
Рейтинг: 0 / 0
25.01.2019, 13:51
    #39764958
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
ЦЦаПри том, что размах могуч, но при рассмотрении случаев реальных применений может оказаться, что слишком могуч, и можно обойтись меньшей кровью и прочим геморроем.
Покажи пожалуйста как с помощью модуля который ты мне приводишь в качестве примера сделать тоже самое что на видео. Я пока вообще не вижу связи, либо ты не понял для чего модуль предназначен.
...
Рейтинг: 0 / 0
25.01.2019, 14:02
    #39764970
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
EoltPlatform Toolset: Visual Studio 2017 (v141)

Ошибка при ребилде:

автор1>------ Rebuild All started: Project: VBPng, Configuration: ReleaseDll Win32 ------
1>CHooker.cpp
1>CPicture.cpp
1>c:\users\alex\downloads\vbpng-master (1)\vbpng-master\vbpnglibcpp\cpicture.cpp(68): warning C4244: '+=': conversion from 'LONGLONG' to 'DWORD', possible loss of data
1>c:\users\alex\downloads\vbpng-master (1)\vbpng-master\vbpnglibcpp\cpicture.cpp(223): warning C4533: initialization of 'rc' is skipped by 'goto CleanUp'
1>c:\users\alex\downloads\vbpng-master (1)\vbpng-master\vbpnglibcpp\cpicture.cpp(178): note: see declaration of 'rc'
1>c:\users\alex\downloads\vbpng-master (1)\vbpng-master\vbpnglibcpp\cpicture.cpp(223): note: see declaration of 'CleanUp'
1>dllmain.cpp
1>ldasm.cpp
1>VBPng.cpp
1>LINK : fatal error LNK1181: cannot open input file 'msvcrt_winxp.obj'
1>Done building project "VBPng.vcxproj" -- FAILED.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Если ты хочешь пересобрать библиотеку, а не пользоваться готовой.
Нужно либо установить WDK, это в случае если хочешь чтобы производимые exe-шники работали на всех системах без всяких доп зависимостей. Там будет msvcrt_winxp.obj который позволяет использовать msvcrt.dll доступный на чистой XP и выше. Также можно просто скачать нужные библиотечные файлы без установки WDK (msvcrt.lib и msvcrt_winxp.obj). Первый дает линкеру понять что нужно линковать не со спецефичной CRT (типа MSVCR100.dll), а с системной MSVCRT.DLL. Второй задает минимальную версию.
Если зависимости не смущают, то в настройках проекта нужно просто убрать msvcrt_winxp.obj и msvcrt.lib для билда ReleaseDll, и msvcrt_winxp.obj
Если зависимости не смущают то можно просто в билде ReleaseDll убрать msvcrt.lib и msvcrt_winxp.obj из доп зависимостей компоновщика, для билда ReleaseLib удалить msvcrt.lib и msvcrt_winxp.obj, и добавить свою CRT которая используется по умолчанию студией (обычно лежит в папке \VC\lib\).
...
Рейтинг: 0 / 0
25.01.2019, 14:09
    #39764975
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
Потестил на PNG файлах. Почему-то при добавлении этого файла, студия крашится: http://pngimg.com/uploads/light/light_PNG14440.png
...
Рейтинг: 0 / 0
25.01.2019, 14:12
    #39764978
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
EoltПотестил на PNG файлах. Почему-то при добавлении этого файла, студия крашится: http://pngimg.com/uploads/light/light_PNG14440.png
Спасибо за тестирование, сейчас постараюсь исправить.
...
Рейтинг: 0 / 0
25.01.2019, 14:30
    #39764992
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
Eolt,
Баг исправлен. В методе CPicture::LoadFromStream неверно заполнялось поле bi.bmiHeader.biHeight , было:
Код: plaintext
1.
2.
3.
4.
5.
	bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
	bi.bmiHeader.biBitCount = 32;
	bi.bmiHeader.biHeight = -rc.Width;
	bi.bmiHeader.biWidth = rc.Width;
	bi.bmiHeader.biPlanes = 1;


стало:
Код: plaintext
1.
2.
3.
4.
5.
	bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
	bi.bmiHeader.biBitCount = 32;
	bi.bmiHeader.biHeight = -rc.Height;
	bi.bmiHeader.biWidth = rc.Width;
	bi.bmiHeader.biPlanes = 1;


Еще раз спасибо, за тестирование. Обновил.
...
Рейтинг: 0 / 0
25.01.2019, 14:33
    #39764993
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
А вообще автор молодец! Проект круто сделан. Посредством хака обновил среду разработки, заставил ее работать с png файлами.
...
Рейтинг: 0 / 0
25.01.2019, 14:39
    #39764997
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
EoltА вообще автор молодец! Проект круто сделан. Посредством хака обновил среду разработки, заставил ее работать с png файлами.
Спасибо. Хорошо даже не это, а то что в скомпилированном файле также будут лежать PNG ресурсы с альфа каналом и EXE/DLL будет загружать их во время работы. Также данную библиотеку можно при желании использовать и в VBA (32bit) и вообще где угодно, где используются ActiveX контролы.
...
Рейтинг: 0 / 0
25.01.2019, 15:07
    #39765012
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
Похоже еще один баг. Почему-то перестали добавляться PNG в контролы. Все время пишет Invalid Picture
...
Рейтинг: 0 / 0
25.01.2019, 15:14
    #39765019
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
EoltПохоже еще один баг. Почему-то перестали добавляться PNG в контролы. Все время пишет Invalid Picture
После чего такое поведение проявилось? Dll обновил после последнего багфикса?
...
Рейтинг: 0 / 0
25.01.2019, 15:15
    #39765020
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
Похоже дело в плохих PNG файлах в архиве. Они или испорчены, или в каком-то непонятном формате.
...
Рейтинг: 0 / 0
25.01.2019, 15:26
    #39765029
ATM-TURBO 2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
EoltПохоже дело в плохих PNG файлах в архиве. Они или испорчены, или в каком-то непонятном формате.
Я новичек в работе с гитхабом, поэтому полно ошибок в настройке. Обновил настройки, сейчас все должно правильно качаться. Просто я добавил в атрибуты *.png binary, а у некоторых файлов расширение с заглавной буквы было поэтому он заменял там перевод строки.
...
Рейтинг: 0 / 0
25.01.2019, 15:45
    #39765035
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PNG изображения в стандартных контролах VB6.
Вопрос про линковку файлов.

Можно ли делать свои obj файлы и линковать их к VB-экзешникам? И чтобы функции в OBJ были доступны из VB-кода (Не через секцию экспорта в EXE)

И еще допустим у меня проект использует много DLL библиотек. Я могу получить из них OBJ подобной утилитой . Смогу я слинковать эти OBJ с моим VB-экзешником, чтобы они были доступны из кода?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / PNG изображения в стандартных контролах VB6. / 25 сообщений из 28, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]