| Автор | Сообщение |
|
|
| постоянный участник
|
Пост N: 7642
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.12.23 14:43. Заголовок: Переход на VisualC
Сейчас использую связку MiniGUI-23.09.2 + Harbour 3.2.0dev (r2301231146) от версии MiniGUI-23.01 Моя большая прога более стабильно работает на такой связке. У большинства юзеров прога не падает, хотя есть и исключения. При переходе на MiniGUI-23.10 с родным Harbour начинают отваливаться ТСБ (тупо клинит) и клинят кнопки на форме (вообще не нажимаются) при первом входе на форму. Связано это видно с самим Харбором. Актуален вопрос по переходу на MiniGui под MSVC. Чем отличаются Харбор сборки текущего года под MSVC от BCC ?
|
 |

|
|
Ответов - 16
[только новые]
|
|
|
|
| постоянный участник
|
Пост N: 7643
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.12.23 14:49. Заголовок: Столкнулся с проблем..
Столкнулся с проблемой и не поняткой при сборке ехе-ника под VisualC. Выгрузил архив в новый каталог 1. сборка -> не проходит, нет _hbmkaut_main.obj, а _hbmkaut_main.c есть. протокол длинный 2. повторяю -> не проходит, нет _hbmkaut_main.obj, а _hbmkaut_main.c есть. протокол короткий, повторяю - тоже самое 3. удаляю OBJ каталог, сборка -> проходит exe запустился, еще несколько раз делаю - все ok! Такое же у меня редко, но бывает и под BCC. Тоже удаляю папку и потом всё собирается. Почему нет проверки на этот сбой ? Или удалять этот файл ВСЕГДА при начале сборки...
|
 |

|
|
|
| постоянный участник
|
Пост N: 7644
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.12.23 01:31. Заголовок: Не совсем понятна ли..
Не совсем понятна лицензия на MiniGui MSVC. Если использовать - https://visualstudio.microsoft.com/ru/vs/community/ То там пишут: Для индивидуальных пользователей Любой индивидуальный разработчик может создавать бесплатные или платные приложения с помощью Visual Studio Community. Просто интересно как это сейчас будет ?
|
 |

|
|
|
| moderator
|
Пост N: 2233
Зарегистрирован: 11.02.10
|
|
Отправлено: 24.12.23 13:36. Заголовок: Andrey пишет: Не со..
Andrey пишет: | цитата: | | Не совсем понятна лицензия на MiniGui MSVC |
| Подробное лицензионное соглашение см. по адресу click here Если коротко: | цитата: | 1. ПРАВА НА УСТАНОВКУ И ИСПОЛЬЗОВАНИЕ. a. Индивидуальная лицензия. Если вы являетесь физическим лицом, разрабатывающим собственные приложения либо для продажи, либо с какой-либо другой целью, вы можете использовать данное программное обеспечение для разработки и тестирования таких приложений. |
|
|
 |

|
|
|
| постоянный участник
|
Пост N: 4478
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.12.23 15:09. Заголовок: gfilatov2002 пишет Е..
gfilatov2002 пишет Выделить надо фразу (во всех пунктах) | цитата: | | вы можете использовать данное программное обеспечение для разработки и тестирования таких приложений |
| т.е. для коммерческого использования нужна лицензия 
|
 |

|
|
|
| постоянный участник
|
Пост N: 7648
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.12.23 10:51. Заголовок: Что-то анимация у ме..
Что-то анимация у меня пропала при вызове кнопок 1-4 в примере APP_OOPTEMPLATE-VC-20 Т.е. в модуле WaitWinGif.prg перестаёт авишка двигаться ... ANIGIF Gif_1 OBJ oStaticGif PICTURE "Ani3dMan128" С чем это связано ? Или это только на моем компе такое ?
|
 |

|
|
|
| moderator
|
Пост N: 2235
Зарегистрирован: 11.02.10
|
|
Отправлено: 29.12.23 17:03. Заголовок: Andrey пишет: С чем..
Andrey пишет: Это связано с тем, что Gif файл используется в окне, которое активируется с использованием класса NOWAIT, т.е без остановки выполнения дальнейшего кода. А для проигрывания Gif-анимации требуется режим ожидания, который возникает при обычном использовании команды ACTIVATE WINDOW <имя окна>.
|
 |

|
|
|
| постоянный участник
|
Пост N: 7649
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.12.23 18:52. Заголовок: Блин, до этого работ..
Блин, до этого работало, а потом перестало... Странно... Я код WaitWinGif.prg не правил уже давно. Нашёл вариант от 02.09.2023 - там Gif файл не останавливается... Пере собрал этот вариант с новой версией МиниГуи 23.12 - Gif файл не останавливается. Вставляю старый код WaitWinGif.prg от 02.09.2023 в новый проект, собираю - Gif файл останавливается ! Отличие нового кода от старого - больше кода и сборка ресурсов другая !!! demo.rc делается по другому: #include "Resource\demo.rc" #include "Resource\demo_64.rc" #include "Resource\demo_128.rc" // ------ убрал для быстроты сборки 27.12.2023 ----------- // #include "Resource\demoDummy1.rc" // #include "Resource\demoDummy2.rc" #include "Resource\_info_my.rc" Буду переделовать без NOWAIT Но не думаю что в этом дело... Переделал для BCC ресурсный файл по старому в новой версии - Gif файл останавливается ! Чем больше ехе-ник, тем больше вероятности что рабочий код начинает глючить...
|
 |

|
|
|
| постоянный участник
|
Пост N: 8191
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.07.26 01:04. Заголовок: Пытаюсь перейти на с..
Пытаюсь перейти на сборку своей большой проги для MSVC2022 Для тех кто хочет тоже это делать. Файлы ресурсов для MSVC НЕЛЬЗЯ размещать в файле проекта (допустим demo-msvc.hbp) ! Нужно создать файл demo-msvc.rc и там указывать ресурсные фалы, вот примерно так: #include "Resource\demo0.rc" #include "Resource\demo1.rc" #include "Resource\demo2.rc" В файлах Resource\demoXX.rc последняя строка должна быть CRLF иначе будет ошибка: Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384 Copyright (C) Microsoft Corporation. All rights reserved. W:\@demo4win\Resource\demo2.rc(46) : fatal error RC1004: unexpected end of file found hbmk2[demo4win-msvc]: Error: Running resource compiler. 1 НЕ допускается наличие функции в вашем проекте с ОДИНАКОВЫМ ИМЕНЕМ которая есть в xxx.lib MiniGui MSVC !!! ВОПРОС - как в одном prg можно делать код для BCC и MSVC ? Т.е. есть функции которые под MSVC не собираются и надо в одном исходнике (чтобы не плодить новые) написать их заново для MSVC #ifdef ????? // MSVC #else #endif Или так нельзя сделать ? 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4893
Зарегистрирован: 17.02.12
|
|
Отправлено: 06.07.26 14:40. Заголовок: Файлы ресурсов для M..
| цитата: | | Файлы ресурсов для MSVC НЕЛЬЗЯ размещать в файле проекта (допустим demo-msvc.hbp) ! |
| Использую rc.exe от 1998 г. для всех msvc (последний 2019) и для bcc (всех) " Microsoft (R) Windows 32 Resource Compiler, Version 3.50 - Build 851" в rc файле, у меня, есть более 200-от строк для ico, bmp, ini, txt, dbf, ... - все собирает ok! Еще вариант получать res файлы, например, так %BK%\BIN\RC\RC.EXE %PP%.RC >> ..\%OCMD% потом их включать в hbp сценарий, т.е. см. UTILS\mgDBU\dbu.hbp ... # list of all *.prg MGDBU.prg DBUEDIT.prg DBUVIEW.prg # project Resources MGDBU_.res | цитата: | | НЕ допускается наличие функции в вашем проекте с ОДИНАКОВЫМ ИМЕНЕМ которая есть в xxx.lib MiniGui MSVC !!! |
| Со времен clipper делали схему, например, для hmg можно так FUNC Main(...) // file my0.prg .... ow:Event( 1, {|ow| my_Fun1(ow) } ow:Event( 2, {|ow| my_Fun2(ow) } ... FUNC My_Fun1(oWnd) // file my1.prg ... my_Wnd(...) ... STATIC FUNC My_Wnd(...) ... STATIC FUNC My_Other(...) ... FUNC My_Fun2(oWnd) // file my2.prg ... my_Wnd(...) ... STATIC FUNC My_Wnd(...) ... STATIC FUNC My_Other(...) ... и т.д. по проекту т.е. вся обработка находится в STATIC ф-ях (могут в разных prg иметь одинаковые имена), более того, можно из такого prg получать hrb файл и класть его в ресурсы и из них делать вызов на исполнение (про dll даже не говорю) | цитата: | написать их заново для MSVC #ifdef ????? // MSVC #else #endif |
| Если разговор о C, C++ модулях, то создавай из них lib и подключай в hbp сценарий
|
 |

|
|
|
| постоянный участник
|
Пост N: 8192
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.07.26 19:33. Заголовок: Как убрать кракозябы..
Как убрать кракозябы в файле build.log ???? hbmk2: Triggered by #require directive: hbxlsxml.hbc hbmk2: Compiling resources... Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384 Copyright (C) Microsoft Corporation. All rights reserved. hbmk2: Linking... Demo4win.exe CVTRES : fatal error CVT1100: ■ . : ICON, : 1, : 0x0409 LINK : fatal error LNK1123: ?й п( п?б?ов нии в COFF: ?л не¤оп? или пов?¤ен hbmk2[Demo4win-msvc]: Error: Running linker. 1123 link.exe @D:\TEMP\ymcap4.lnk
|
 |

|
|
|
| постоянный участник
|
Пост N: 8193
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.07.26 23:25. Заголовок: Нашёл решение для уб..
Нашёл решение для убирания кракозябов в build.log Нужно установить такую команду в buildapp.bat @echo off set VSLANG=1033 <<---- (код для английского языка) set OLDPATH=%PATH% set HMGPATH=D:\MiniGuiVC_2603Pro call "D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 SET PATH=%HMGPATH%\harbour\bin;%PATH% echo #define HMGRPATH %HMGPATH%\RESOURCES > _hmg_resconfig.h ..... Григорий, добавь пожалуйста эту команду в сборку MSVC Если это не помогает, значит у вас установлена только русская версия MSVC Нужно установить английский языковой пакет через Visual Studio Installer Тогда точно будет работать !
|
 |

|
|
|
|
|
| постоянный участник
|
Пост N: 8194
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.07.26 13:50. Заголовок: Не получается собрат..
Не получается собрать свой проект. Выдаёт такую ошибку в build.log hbmk2: Triggered by #require directive: hbxlsxml.hbc hbmk2: Compiling resources... Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384 Copyright (C) Microsoft Corporation. All rights reserved. hbmk2: Linking... Demo4win.exe Tsb7xml.obj : error LNK2001: unresolved external symbol _HB_FUN_EXCELWRITERXML D:\MiniGuiVC_2603Pro\harbour\lib\win\msvc\hbxlsxml.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86' Abonent4win.exe : fatal error LNK1120: 1 unresolved externals hbmk2[Demo4win-msvc]: Error: Running linker. 1120 link.exe @D:\TEMP\wvgnpt.lnk Удалил и пере собрал заново hbxlsxml.lib в папке D:\MiniGuiVC_2603Pro\SOURCE\HbXlsXml файл BuildLib.bat - там установил ключ call "D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 Подскажите в чём ошибка ? У меня в коде вызов такой: // Создаем объект XML oXml := ExcelWriterXML():New( cFile ) oXml:setOverwriteFile( .T. ) oXml:setCodePage( "RU1251" )
|
 |

|
|
|
| постоянный участник
|
Пост N: 4895
Зарегистрирован: 17.02.12
|
|
Отправлено: 07.07.26 14:14. Заголовок: У меня свои файлы сб..
У меня свои файлы сборки и в них есть указание на SET VCE=%VCL% bin\x86, они тут ...\MSVC\vcvar.cmd Скрытый текст
SET MSVC=2019 SET VCL=%~dp0 SET PATH=%VCL%bin;%PATH% SET VCE=%VCL%bin\x86 SET VER=10.0.18362.0 SET PATH=%VCE%;%VCL%sdk\Redist\%VER%\ucrt\DLLs\x86;%VCL%sdk\bin\x86;%PATH% SET INCLUDE=%VCL%include;%VCL%sdk\include\ucrt;%VCL%sdk\include\um SET INCLUDE=%INCLUDE%;%VCL%sdk\include\shared SET INCLUDE=%INCLUDE%;%VCL%atlmfc\include;%VCL%atlmfc\src\mfc;%VC\%atlmfc\src\mfc SET LIB=%VCL%lib\x86;%VCL%sdk\lib\um\x86;%VCL%sdk\lib\ucrt\x86;%VCL%atlmfc\lib\x86; SET SY=%VCL%SY32.EXE SET FU=%VCL%FU32.EXE SET DT=%VCL%DT32.EXE
| запуск сборки из проекта _hb.cmd Скрытый текст
@echo off if exist \BK19\BIN\hb19.cmd Call \BK19\BIN\hb19.cmd %1 %2 %3 %4 %5 %6 %7 %8
| сборка hb19.cmd Скрытый текст
@echo off if %1.==O. goto Obj if not %1.==. goto e rem ------------------- Start compile, link :Start SET BK=\BK19 SET HB=%BK%\HB32 SET VC=%BK%\MSVC SET BIN=%HB%\bin set HB_BK=%BK% set HB_HB=%HB_BK%\hb32 set HB_VC=%HB_BK%\MSVC Call %HB_VC%\vcvar.cmd Call %HB_HB%\hbvar.cmd SET BIN=%BIN%;%VCE% rem -------------------------- Keys for Harbour.exe, cl.exe SET HL=-n -m -es0 -w0 -ql SET CL=/nologo /EHsc /W3 /O2 /DWIN32 /DNDEBUG /D_WINDOWS /D_MBCS rem -------------------------- No modification variable !!! SET O=.\C SET C=.\C SET R=.\RES SET W=.\WRK SET OU=%C% SET ERR=N if NOT exist %W%\_hbSets.cmd ( Echo **************************************** Echo *** File not found %W%\_hbSets.cmd ! Echo **************************************** pause exit ) rem ---------------------- Set variable Enveroment ------------------ Call %W%\_hbSets.cmd if NOT exist %P%.prg ( Echo *************************************** Echo *** File not found %P%.prg ! Echo *************************************** pause exit ) for %%i in ( %P% ) Do ( SET PT=%%~pi SET PP=%%~ni SET EX=%%~xi ) if exist %W%\%PP%.EXE Del %W%\%PP%.EXE > nul if exist %C%\%PP%.obj Del %C%\%PP%.obj > nul rem ------------------ FileName out protokol SET OCMD=_hb_.txt echo %P% > %OCMD% echo %P% echo -------------------------- SET OBJ=%BK%\OBJ SET LIB=%BK%\lib\;%LIB% SET INCLUDE=.\Include;%BK%\MiniGui\Include;%INCLUDE% SET PATH=%BIN%;%PATH% if not exist %C%\*.tmp goto Compile rem --------------------------- Create obj for selected project :ObjCreate for %%d in ( %C%\*.tmp ) Do Call %0 O %%d if %ERR%==Y goto err rem --------------------------- Create Lib for selected project :LibCreate if not exist %C%\*.obj goto Compile if not exist %W%\o_%PP%.txt goto Compile if exist %C%\%PP%.lib Del %C%\%PP%.lib > nul lib.exe /OUT:%C%\%PP%.lib @%W%\o_%PP%.txt > nul rem --------------------------- Create Lib for all project if %LNM%.==. goto Compile if not exist %W%\o_*.txt goto Compile for %%i in ( %LNM% ) Do ( SET LCT=%%~pi SET LNM=%%~ni SET LEX=%%~xi ) if %LCT%.==. goto LibName if not exist %LCT% md %LCT% :LibName if %LCT%.==. SET LCT=%C% if exist %LCT%\%LNM%.lib Del %LCT%\%LNM%.lib > nul for %%d in ( %W%\o_*.txt ) Do lib.exe /OUT:%LCT%\%LNM%.lib @%%d > nul rem --------------------------- Compile Harbour :Compile HARBOUR.EXE %HL% -i%INCLUDE% -o%C%\ %C%\%PP%.prg 2>> %OCMD% if errorlevel 1 SET ERR=Y if %ERR%==Y goto err cl.exe /TC %C%\%PP%.c %CL% /Fp%O%\%PP%.pch /Fo%O%\ /Fd /c >> %OCMD% rem --------------------------- Resource and linker if exist %R%\%PP%.RC ( echo %R%\%PP%.rc >> %OCMD% pushd %R% rem RC.EXE %PP%.RC >> ..\%OCMD% %BK%\BIN\RC\RC.EXE %PP%.RC >> ..\%OCMD% if errorlevel 1 SET ERR=Y popd LINK.EXE /RELEASE @%W%\L_%PP%.TXT %R%\%PP%.RES >> %OCMD% if errorlevel 1 SET ERR=Y ) else ( LINK.EXE /RELEASE @%W%\L_%PP%.TXT >> %OCMD% if errorlevel 1 SET ERR=Y ) :err if %ERR%==Y goto Notepad rem --------------------------- Copy EXE to project if not exist %OU% md %OU% > nul if exist %W%\%PP%.EXE copy %W%\%PP%.EXE %OU%\%NEXE%.exe > nul if exist %W%\%PP%.EXE del %W%\%PP%.EXE > nul goto e rem ---------------------- Start Notepad for error view :Notepad %BK%\BIN\prj.exe /r .\%OCMD% %NINI% %NSEC% * rem Start %NPAD% .\%OCMD% goto e rem ---------------------- Compile obj for lib selected project :Obj if %2.==. goto ObjEnd SET ERO=N for %%i in ( %2 ) Do SET PO=%%~ni for %%i in ( %2 ) Do SET EO=%%~xi if not %EO%==.tmp goto ObjEnd if exist %C%\%PO%.obj del %C%\%PO%.obj > nul HARBOUR.EXE %HL% -i%INCLUDE% -o%C%\ @%C%\%PO%.tmp 2>> %OCMD% if errorlevel 1 SET ERO=Y if %ERO%==Y goto ObjEnd if exist %C%\%PO%.tmp del %C%\%PO%.tmp > nul cl.exe /TC %C%\%PO%.c %CL% /Fp%C%\%PO%.pch /Fo%C%\ /Fd /c >> %OCMD% if errorlevel 1 SET ERO=Y if %ERO%==Y goto ObjEnd :ObjEnd if %ERO%==Y SET ERR=Y goto e :e
|
|
 |

|
|
|
| постоянный участник
|
Пост N: 8195
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.07.26 14:53. Заголовок: Спасибо ! :sm36:..
Сергей СПАСИБО ! Григорий, СПАСИБО ! С новой библиотекой собрался проект. 
|
 |

|
|
|
| постоянный участник
|
Пост N: 8196
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.07.26 17:51. Заголовок: DeepSeek выдал такое..
DeepSeek выдал такое: #ifdef _MSC_VER // Код, специфичный для компилятора Microsoft Visual C ? "Компиляция с помощью MSVC" #elif defined( __BORLANDC__ ) // Код, специфичный для компилятора Borland C++ ? "Компиляция с помощью BCC" #else // Код для других компиляторов (например, GCC) ? "Компиляция с помощью другого компилятора" #endif Делаю у себя так: #include "minigui.ch" #ifdef _MSC_VER // здесь код для компилятора MSVC // делаю функции пустышки для проверки сборки, т.к. нет LetoDbf под MSVC FUNCTION LETO_DISCONNECT RETURN NIL FUNCTION LETO_FILE RETURN NIL FUNCTION LETO_MEMOREAD RETURN NIL FUNCTION LETO_DIREXIST RETURN NIL FUNCTION LETO_MEMOWRITE RETURN NIL #else #endif Проект не собирается, выдаёт ошибку: hbmk2: Compiling... _What_to_do.c _What_to_do.c W:\@Demo4win\OBJ\MSVC\_What_to_do.c : fatal error C1083: Cannot open compiler generated file: 'W:\@Demo4win\OBJ\MSVC\_What_to_do.obj': Permission denied hbmk2[abonent4win-msvc]: Error: Running C/C++ compiler job #1. 1 Поиск в инете дал такое: Компилятор не может найти файл с помощью правил поиска для #include директивы или #import директивы. Например, если имя файла заголовка заключено кавычками, #include "myincludefile.h" Убрал этот #include, всё равно выдаёт ошибку ! Как задать правильно код для MSVC ? 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4896
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.07.26 20:34. Заголовок: Andrey Положил на f..
Andrey Положил на ftp свою сборку LetoDbf для msvc 2019, посмотри, может сгодится для тебя
|
 |

|
|