- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
Const strMask="258258258258258258"
mNumber = Clng(Left(mParam1,2))*100000+Clng(Right(mParam1,5))*10+Clng(mParam2)
mResStr = Right("000000000"+Cstr(mNumber),9)
For c=1 To 9
mRes1 = Cint(Mid(mResStr, c, 1))
mRes2 = Int(Rnd()*10)
strPreResult=Cstr(mRes1)+Cstr(mRes2)
mCheckSum = mCheckSum+mRes1*Cint(Mid(strMask, (c-1)*2+1, 1))
mCheckSum = mCheckSum+mRes2*Cint(Mid(strMask, (c)*2, 1))
Print strPreResult, mCheckSum
strResult=strResult+strPreResult
Next c
strResult = Left(strResult,9)+Right("00"+Cstr((mCheckSum Mod 95)Mod 100),2)+Right(strResult,8)
Генератор случайных чисел.
Почему везде такой не используется?
SemaReal # 0
Что такое m?
lsd # 0 ⇈
inho # 0 ⇈
UPPERCASE # 0 ⇈
SkyHunter # 0 ⇈
inkanus-gray # 0 ⇈
subaru # 0 ⇈
subaru # 0 ⇈
UPPERCASE # 0 ⇈
SemaReal # 0 ⇈
Но тут смешано указание типа (str) и указание области (m). Говновенгерка какая-то
inho # 0 ⇈
guest # 0 ⇈
https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/
https://en.wikipedia.org/wiki/Hungarian_notation
guest # 0 ⇈
subaru # 0 ⇈
MAKAKA # 0 ⇈
shit # 0
UPPERCASE # 0
Kakou_6arop_003 # 0 ⇈
guest # 0 ⇈
Я думаю что VB не нужен когда есть C#.
VB был глотком свежего воздуха во второй половине 90-х, а сейчас-то он нахуй>?
Kakou_6arop_003 # 0 ⇈
А ещё это... VBA.
guest # 0 ⇈
Там тоже есть .NET
guest # 0 ⇈
nemyx # 0 ⇈
MAKAKA # 0 ⇈
Кто помнит вот это, кстати?
https://www.youtube.com/watch?v=UutpX35lxF4
vistefan # 0 ⇈
А что хорошего? Вербозность типа "dim a as Integer", миллиарды ключевых слов, и всё это ради... не знаю чего. Чтобы было на чём вирусы под винду писать, или лишь бы не си-подобный синтаксис был?
Хуйня ёбаная, 1С на английском, писать макросы для офисного планктона.
guest # 0 ⇈
vistefan # 0 ⇈
guest # 0 ⇈
vistefan # 0 ⇈
Нет, я имел ввиду именно тогда, что хорошего было. Ну вот гц уже упомянули.
guest # 0 ⇈
guest # 0 ⇈
Драг-н-дроп.
Да не, если бы мне в 1995 году надо было писать легкую десктопную поебень под win3.11 я бы выбрал VB
guest # 0 ⇈
Угадай, что выбирали люди?
guest # 0 ⇈
guest # 0 ⇈
в никсовом мире по этой же причине выбирали Perl или TCL в ту пору.
Хотя про MFC я спизднул: он тогда уже был, но всё равно тупые морды на C++ писать странно
А уж когда появился OLE, а следом OLE2 (на COM) он же ActiveX, когда стало можно из VB работать со всей виндой и офисом и AD -- тут-то и пошла жара
guest # 0 ⇈
guest # 0 ⇈
Софтварные решения выбирали анскильные заедушные питухи.
Хотя в чем-то ты прав: формошлёпить в конце 90-х уж точно лучше было на дельфи
bormand # 0 ⇈
Тогда его, походу, ещё юзали для верификации логики, а не для синтеза...
guest # 0 ⇈
bormand # 0 ⇈
А до этого - да, вручную. Причем пишут, что цари справлялись с этим намного лучше первых синтезаторов.
bormand # 0 ⇈
guest # 0 ⇈
Это вам не корзиночки для веб-магазинов на JS делать
bormand # 0 ⇈
Так что это скорее корзиночка для фейсбука чем корзиночка для местной шаурмятни.
UPPERCASE # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
Просто популярность у них была.. ну примерно как у Rustа в современном мире
UPPERCASE # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
https://www.codeproject.com/Tips/1037909/Using-COM-Without-Registration
Барсиковый ком родом из win95, какой ему там админ?
guest # 0 ⇈
And Without A SMS?
guest # 0 ⇈
guest # 0 ⇈
Даже вот эта хрень не помогает:
И никаких внятных диагностических сообщений. Просто не работает.
guest # 0 ⇈
>И никаких внятных диагностических сообщений. Просто не работает.
не отошли. Как ты сегодня узнаешь, что тебе не хватает каких-то рантаймов? Или ты запускаешь 64-битную прогу на 32-битной винде?
guest # 0 ⇈
Об этом тебе должен сказать инсталлятор.
>> Или ты запускаешь 64-битную прогу на 32-битной винде?
Довольно внятным сообщением об ошибке про неизвестный тип приложения.
guest # 0 ⇈
Охуительно внятно. Нельзя ли было сказать "это 64-битное приложение, а у тебя 32-битная ось"?
>Об этом тебе должен сказать инсталлятор.
Который не всегда есть. Раньше хоть говорило какой библиотеки не хватает, а сейчас "ошибка записи при чтении".
guest # 0 ⇈
Видишь ли гость, 32х битные ОС не знают о сущестовании 64х битных бинарей, и именно потому они не могут написать указанную тобою фразу.
Ты можешь, кстати, провести эксперемент с любой другой ОС, и узнаешь что там будет тоже самое.
>>Раньше хоть говорило какой библиотеки не хватает
Если у тебя динамическая линковка и .dll прописан в импорте то так именно и скажет: can't load foo.dll
>>ошибка записи при чтении
А это у тебя неверная версия рантайма вроятно, может быть даже бажная
И опять таки: в Линукс тебя ждет та же самя проблема
bormand # 0 ⇈
Ну блин, формат бинарей одинаковый, константы для платформ известны хуй пойми сколько лет... Ничто не мешало показать "это бинарь для amd64". Кроме лени и похуизма.
guest # 0 ⇈
Бывает наоборот, в заголовке указывают завышенную версию, тогда загрузчик выплёвывает программу, хотя мог бы и запустить.
В общем, нужно писать верификатор, который будет сравнивать таблицу импорта со стандартными таблицами для разных версий Windows и выставлять разумное требование к версии ОС в PE-заголовке.
guest # 0 ⇈
можешь рассказать моя подробно?
guest # 0 ⇈
+40 MajorOperatingSystemVersion
The major version number of the required operating system.
+42 MinorOperatingSystemVersion
The minor version number of the required operating system.
Кто мешает выставлять их правильно?
guest # 0 ⇈
Где у линкера опция чтобы их ставить?
guest # 0 ⇈
guest # 0 ⇈
http://waleedassar.blogspot.com/2012/08/major-minorsubsystemversion.html
Вот это смешно
WORD MajorOperatingSystemVersion WORD MinorOperatingSystemVersion The minimum version of the operating system required to use this executable. This field is somewhat ambiguous since the subsystem fields (a few fields later) appear to serve a similar purpose. This field defaults to 1.0 in all Win32 EXEs to date.
guest # 0 ⇈
Там хитро: версию ОС нужно указывать дважды: есть версия системы (MajorOperatingSystemVersion) и версия подсистемы (MajorSubsystemVersion). Обычно они совпадают.
guest # 0 ⇈
Ужас
Но уж никак не ужас-ужас-ужас
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
Шо-шо? Это почему ещё?
При отсутствии нужного vs runtime проги высирали какую-то дичь, как и при остутствии .Net фреймверка.
guest # 0 ⇈
Потому что в 32хбитных ОС нету знания про 64хбитные, а еще в них нету знания про формат исполняемых файлов Amiga. Тебя это удивляет?
>>высирали какую-то дичь
да, вот такую
https://thewindowsclub-thewindowsclubco.netdna-ssl.com/wp-content/uploads/2017/09/The-program-can%E2%80%99t-start-because-VCRUNTIME140.DLL-is-missing-from-your-computer.png
guest # 0 ⇈
guest # 0 ⇈
UPPERCASE # 0 ⇈
guest # 0 ⇈
Тебе сказали: расширение exe и формат PE. На каких платформах такое бывает?
P.S. Поясняю: если расширение не exe, то домохозяйка такую программу не запустит. Если формат не PE, то Винда сразу матюкнётся, что «Файл не является приложением Win32».
guest # 0 ⇈
Это только дос?
guest # 0 ⇈
1. Формат NE использовался для 16-битных приложений Windows 3.x и OS/2.
2. Формат LX использовался для 32-битных приложений OS/2.
Возможно, ещё в каких-то экзотических ОС было расширение .exe, нужно гуглить.
Нагуглил, VMS использовала расширения .com и .exe, но совершенно другие форматы. Com в ней был вообще текстовым файлом (типа .bat или .sh, его уже на ГК обсуждали).
Кстати, формат PE используется не только в Windows, но ещё и в (U)EFI и в ХУЁВОЙ КОРОБКЕ.
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
Уже лет 10 прошло, в восьмерку да десятку вполне могли добавить знание одного сраного значения из енума. Более того, в сишном хедере оно есть.
Бинари с амиги на x86 систему попадают редко, а вот amd64 - весьма часто. Почему бы не добавить специальный кейс для них?
bormand # 0 ⇈
Он должен все это поставить... Причем не спрашивая.
Steve_Brown # 0 ⇈
(spoiler: отсутствует файл манифеста)
guest # 0 ⇈
К чему вообще этот вопрос? Надо специально держать второй системой систему другой разрядности, чтобы получить диагностическое сообщение?
guest # 0 ⇈
guest # 0 ⇈
Почему типичная программа на VB выводит что-то невнятное (типа «Класс недоступен», не сообщая имя этого класса) или вообще молча падает, хотя могла бы сообщить, какой OCX-файл нужно зарегистрировать?
guest # 0 ⇈
https://info.edusite.ru/images/p84_1420719591_cs-optimizator-error-comdlg32.jpg
bormand # 0 ⇈
Потому что в целочисленный код ошибки некуда присунуть дополнительные аргументы?
guest # 0 ⇈
https://en.wikipedia.org/wiki/HRESULT
bormand # 0 ⇈
В какой-нибудь глобальный массив, позиция в котором указана битами из hresult? Или на каждое известное имя по значению?
Steve_Brown # 0 ⇈
bormand # 0 ⇈
Steve_Brown # 0 ⇈
guest # 0 ⇈
another_fake # 0 ⇈
bormand # 0 ⇈
Потому что согласно идеологии COM она этого не знает, а знает только guid класса или интерфейса?
guest # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
Если файла нет то вылетает ошибка как показана выше
Если гуида нет то извини, но такого обычно не бывает
bormand # 0 ⇈
Ага, ведь никто не забывает зарегать ocx.
guest # 0 ⇈
Проблемы при запуске программ на VB чаще возникают не из-за отсутствия файла, а из-за того, что им что-то в реестре не нравится.
guest # 0 ⇈
guest # 0 ⇈
bormand # 0