Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/56: Рейтинг темы: голосов - 56, средняя оценка - 4.54
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443

Быстрый старт в изучении C++ для относительно опытных программистов Basic

18.04.2020, 16:11. Показов 15015. Ответов 253

Студворк — интернет-сервис помощи студентам
В этой ветке предлагаю обсуждать сходства и различия между C++ и Visual Basic.
Ну хотя бы для упрощения процесса изучения параллельного (дополнительного) языка для тех, кто уже относительно неплохо знаком с Visual Basic.
Ну просто как-то "не вкусно" начинать изучение совсем уж с нуля, когда, в принципе, уже и без того много знаешь (циклы, ветвления, указатели, видимость переменных ... ).

На самом деле, начал сейчас просмортр на ютубе курса по C++. Дядька очень толково и понятно всё объясняет, явно есть у него талант хорошего преподавателя.

Самые первые отличия, которые бросились в глаза, это:
- комменты обозначают двумя косыми чертами вместо апострофа,
- в конце каждой строки точка с запятой,
- все процедуры, функции, "тела" циклов ... в фигурных скобках,
- вложенные циклы можно описывать одной строкой,
- если переменная объявлена, но ей не присвоено значение, то она содержит случайный "мусор" из памяти, а не как у нас в бейсике, где сразу получает значение ноль или пустую строку,
- массивы с квадратными скобками вместо круглых,
- область видимости переменных ограничена фигурными скобками и причём неважно функция это, цикл или "тело" функции IF, а не как у нас область видимости переменных ограничена только функциями и процедурами.

Ветка открытая, пишите кто хочет.
Особенно приветствуются советы опытных специалистов, уже овладевших несколькими языками.
Ну уж им-то гораздо виднее, в чём сходство и различие разных языков.

Сказать по правде, лично мне сейчас C++ и его младший брат нужны, главным образом, для удобства изучения материалов MSDN.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.04.2020, 16:11
Ответы с готовыми решениями:

предложение для опытных программистов
добрый день уважаемые госпда программисты - необходима помощь по выполнению лабораторных по предмету Операционные Системы. Ищу человека...

Быстрый старт и софт для Modicon TM251MESE (Schneider Electric)
Так сложилась ситуация, что в скором времени предстоит познакомиться с ПЛК TM251MESE от Sneider Electric. Начал интересоваться как...

Книги или справочники для опытных(или проффесиональных) программистов!
Пожалуйста, Подскажите книги или справочники для опытных и проффесиональных программистов! Особенно хотелось бы найти: 1) полный...

253
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,088
Записей в блоге: 7
28.04.2020, 22:30
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от The trick Посмотреть сообщение
К примеру IXMLDOMNode::get_baseName
Я про процедурные WinAPI, а не COMовские.

Цитата Сообщение от The trick Посмотреть сообщение
Могут, точнее они и есть аналоги.
Тогда повторю вопрос который уже задавал. Поместите в ссылку адрес выделенной памяти функцией LocalAlloc. Если как вы утверждаете это аналоги, это не должно быть проблемой.

Цитата Сообщение от The trick Посмотреть сообщение
Set cStm = SHCreateStreamOnFile("C:\Temp\tesst_icon .bmp", STGM_READ Or STGM_SHARE_EXCLUSIVE)
Ваш код не соответствует описанию на сайте микрософта. https://docs.microsoft.com/en-... eamonfilea
Должно быть 3 параметра и функция возвращает статус выполнения, а не объект. Напишите код согласно документации.
0
Модератор
10061 / 3906 / 885
Регистрация: 22.02.2013
Сообщений: 5,856
Записей в блоге: 79
28.04.2020, 22:40
Цитата Сообщение от locm Посмотреть сообщение
Я про процедурные WinAPI, а не COMовские.
Какая разница? COMовская не может быть процедурной?

Цитата Сообщение от locm Посмотреть сообщение
Тогда повторю вопрос который уже задавал. Поместите в ссылку адрес выделенной памяти функцией LocalAlloc. Если как вы утверждаете это аналоги, это не должно быть проблемой.
А зачем? Ну поместить то можно, зачем? Помещается просто pObj.ptr = LocalAlloc(...). Что это даст?

Цитата Сообщение от locm Посмотреть сообщение
Ваш код не соответствует описанию на сайте микрософта.
Все он соответствует. Это ты не знаешь просто как работает VB6 и не понимаешь его концепцию.

Цитата Сообщение от locm Посмотреть сообщение
Должно быть 3 параметра и функция возвращает статус выполнения, а не объект. Напишите код согласно документации.
Функция возвращает HRESULT - код ошибки который анализируется и если нужно генерируется ошибка, сама же функция возвращает результат в последнем параметре. VB6 достаточно умный чтобы понимать такое поведение согласно концепции безопасного программирования, поэтому мы можем просто возвратить то что нам нужно словно это функция, а если случится ошибка VB6 сам сгенерирует ее и нам не нужно писать дополнительный код обнаружения таких ошибок.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
28.04.2020, 22:51
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Нет контроля правильности файла и контроля версии.
Опять же битый файл, испорченный другой кривой программой, что, невозможно такое?
Если редактор его открыл - значит файл корректный. С некорректными файлами редактор не работает.
Повредить эти файлы редакторами крайне сложно, они крохотные, их размер в килобайтах, пишутся на диск
мгновенно.
Вирусам эти файлы не интересны, это узкоспец. А специально его повредить - ну это непонятно зачем.
Редактор нужен для того чтобы модифицировать карты. Другой софт тоже не работает с повреждёнными,
просто никакого полезного результата не получишь ни в одном из кейсов.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Это как купил бы я архиватор RAR, гружу в него битый архив, а он раз и упал, вместо того, что бы сообщить, что архив битый.
Или Фотошоп, упал бы вместо того, что бы сообщить, что файл испорчен или не поддерживается.
Это не одно и то же. В случае с RAR-ом ты не потеряешь данные, в случае с фотошопом же - потеряешь.
Эти редакторы заточены под вывод инфы вместо падения, потому что
1) работа с ними не должна прерываться в силу многоитеративности этой работы
2) при открытых данных их можно потерять
3) это почти всеядные машины, они заточены под кучу форматов и пользователь иногда может просто
проверять хавает ли архиватор тот или иной формат
У меня же софт узкоспец, который работает только с файлами *.MAP от d2k, это не всеядный комбайн.
Процесс создания карты - долгий, часа 3-4 иногда больше, открыл карту и работаешь смысла никакого
нет её менять, одна итерация. Потеря данных исключена, как и падение во время редактирования, если
пользователь забыл сохранить - тут он уже сам виноват.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
А авторы меня бы лечили, что нормальный юзер ни когда испорченный файл в редактор не загрузит
За всю практику работы с картами ни мне ни тому человеку ни разу не удалось запороть *.MAP файл.
Ни разу... Может если использовать совсем кривой сторонний софт - это и удастся. Мой редактор
проверяет перед сохранением корректность файла(там есть требования для запуска этих карт дюной).
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
28.04.2020, 22:54
Цитата Сообщение от Quiet Snow Посмотреть сообщение
проверяет перед сохранением корректность файла
Ну тогда совсем элементарно, эту же проверку засунуть перед загрузкой файла!
0
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,088
Записей в блоге: 7
28.04.2020, 22:56
Цитата Сообщение от The trick Посмотреть сообщение
Какая разница? COMовская не может быть процедурной?
Это шутка?

Цитата Сообщение от The trick Посмотреть сообщение
А зачем? Ну поместить то можно, зачем? Помещается просто pObj.ptr = LocalAlloc(...).
Полный рабочий код можно?

Цитата Сообщение от The trick Посмотреть сообщение
Это ты не знаешь просто как работает VB6 и не понимаешь его концепцию.
В VB другие WinAPI несовместимые с официальными от MS?

Цитата Сообщение от The trick Посмотреть сообщение
Функция возвращает HRESULT - код ошибки который анализируется и если нужно генерируется ошибка, сама же функция возвращает результат в последнем параметре. VB6 достаточно умный чтобы понимать такое поведение согласно концепции безопасного программирования
И все же вызов должен соответствовать документации. Напишите как следует.
VB сам догадаться не может. Покажите декларацию SHCreateStreamOnFile.
0
Модератор
10061 / 3906 / 885
Регистрация: 22.02.2013
Сообщений: 5,856
Записей в блоге: 79
28.04.2020, 23:02
Цитата Сообщение от Quiet Snow Посмотреть сообщение
С некорректными файлами редактор не работает.
Они просто убивают его. Он даже ничего сказать не может, даже причину. Юзер не понимает то ли это кривой редактор, то ли с файлом что-то не то, то ли у него памяти не хватает, то ли ....
Ну это несерьезно. Нормально написанное приложение (которое тестируется и пишется согласно документации, надежное) не должно так падать.

Добавлено через 3 минуты
Цитата Сообщение от locm Посмотреть сообщение
Это шутка?
Нет. В чем шутка?

Цитата Сообщение от locm Посмотреть сообщение
Полный рабочий код можно?
Ну это в принципе полный код.

Цитата Сообщение от locm Посмотреть сообщение
В VB другие WinAPI несовместимые с официальными от MS?
Совместимы.

Цитата Сообщение от locm Посмотреть сообщение
И все же вызов должен соответствовать документации. Напишите как следует.
VB сам догадаться не может. Покажите декларацию SHCreateStreamOnFile.
Он и соответствует и да он может:
Code
1
2
Function SHCreateStreamOnFile(pszFile As String, grfMode As STGM) As IStream
    Member of olelib.shlwapi
Эта функция на VB6 соответствует декларации в библиотеке типов:
Code
1
2
3
4
5
[entry(0x60000108)]
HRESULT _stdcall SHCreateStreamOnFile(
                [in] LPWSTR pszFile, 
                [in] STGM grfMode, 
                [out, retval] IStream** ppstm);
0
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,088
Записей в блоге: 7
28.04.2020, 23:27
Цитата Сообщение от The trick Посмотреть сообщение
Ну это в принципе полный код.
Ну да полный, а не компилируется из-за плохой погоды на Марсе?



Цитата Сообщение от The trick Посмотреть сообщение
Совместимы.
Где же совместимы если число аргументов и возвращаетмый тип не соответствуют действительности.

Цитата Сообщение от The trick Посмотреть сообщение
Эта функция на VB6 соответствует декларации в библиотеке типов
Декларация как в документации MS, но вызов не соответствует декларации. Судя по декларации должен быть возвращен статус.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
29.04.2020, 00:36
Цитата Сообщение от The trick Посмотреть сообщение
Юзер не понимает то ли это кривой редактор, то ли с файлом что-то не то
Ну это несерьезно.
Юзер просто не читает описания. Все *.map файлы из поставки d2k откроются.
А несерьёзно делать выводы о продукте, который разрабатывался годами, формализован и работает
супер надёжно и бессбойно. Открывать то, что не относится к предмету его компетенции редактор и не обязан,
это нигде не заявлено.

P.S: в d2k всего один формат карт и это *.map .
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
29.04.2020, 01:44  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Открой F2, там все типы параметров есть:
Открыл, посмотел.

Цитата Сообщение от Power_Basic
И сразу несколько вопросов, связанных с передачей переменных. Здесь, как я понимаю, просят передать этот параметр в виде указателя на строку, заканчивающуюся нулевым байтом.
Цитата Сообщение от The trick Посмотреть сообщение
BSTR строка (это тип строк в VB6) являются строками с нуль терминалом (а не нулевым байтом).
А разве это не одно и то же?

Цитата Сообщение от The trick Посмотреть сообщение
VB6 определяет тип параметра из библиотеки типов и автоматически конвертирует безопасные типы в соответствующие. LPCWSTR строка может быть передана как BSTR строка без всяких преобразований.
На самом деле, мне бы сейчас хотелось взглянуть немного шире. Не с точки зрения передачи параметров только из VB6, а с точки зрения передачи из разных ЯП. VB6 конвертирует, он вообще очень услужливый и тем самым иногда оказывает медвежьи услуги. Можно вообще не заморачиваться на изучение и всё передавать как Variant'ы. А вот, например, мне понадобится из ассемблера передать, тогда как будет выглядеть "идеальная передача"?
Разместить где-то в памяти строку с нулевым байтом в самом её конце, потом положить в стек адрес (он же указатель) этой строки и после этого вызывать функцию, правильно?

Цитата Сообщение от The trick Посмотреть сообщение
Так и необязательно делать, просто передавай строки.
Правильно я понимаю, что так делать необязательно только в языках с нестрогой типизацией?
А в языках со строгой типизацией как обстоит дело?
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
29.04.2020, 02:24  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Да, юникодную строку.
А как отличить, когда юникодную просят, а когда ANSI-шную?

Цитата Сообщение от locm Посмотреть сообщение
Указатель по значению? Как себе это представляете?
Очень легко представляю
Прикрепил фрагмент кода с буржуйского форума по PowerBasic'у. Там как раз передаётся именно указатель и именно по значению.
Почему-то иногда вот так передают, как показано на рисунке, а иногда просто строкой. Я пока не могу отфильтровать, в каких случаях надо передавать так, а в каких эдак. Обычно решаю эту проблему методом тыка, путём "примерки" нескольких разных вариантов. Когда какой-то из них сработает, ну и хорошо, можно кодить дальше
Но когда "неизвестных" много, тогда уже и вариантов тоже много
Число сочетаний из N элементов, комбинаторика и всё такое

Там же ещё интерфейсы разные (IDISPATCH, IAUTOMATION, IUNKNOWN), может быть из-за этого такая разница?
В одних случаях через одни интерфейсы подключаемся, в других через другие, оттого-то и разница такая, или нет?

Цитата Сообщение от locm Посмотреть сообщение
Просто передаете указатель на строку.
Ну теперь я совсем запутался
The trick говорит, что надо просто строку передавать, а вы, - просто указатель на строку.
Миниатюры
Быстрый старт в изучении C++ для относительно опытных программистов Basic  
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
29.04.2020, 04:11
Цитата Сообщение от The trick Посмотреть сообщение
Юзер не понимает то ли это кривой редактор, то ли с файлом что-то не то, то ли у него памяти не хватает, то ли ....
Ну ладно, пускай, впервые(!!!) за 9 лет нашёлся такой пользователь, который ни разу не видел целевую прогу
(хм зачем же ему тогда редактор, хм ), которому решительно по боку описание и пихает в неё всё
что попало, на что она, разумеется, никогда не была рассчитана, мол над разрабом поиздеваться,
ну ладно Лёхе не в первой, всё ради пользователя, скачал пурик, нашёл свои исходники, не без труда
вспомнил в край забытый ЯП и пофиксил этот ничтожный недочёт, даже не баг, а феерический идиотизм со
стороны пользователя.

Ну и что поменялось? В самой работе программы, в том что разрабатывалось годами и механизмах реальный
баг
, который препятствует использованию софта или рубит данные сможет кто найти?
Это уже не похаять по какой-то откровенной бредовой фигне, а чисто по делу, по работе софта.

Я вот убеждён что "показать" это была исключительно херовая идея, потому что поржать поржали, похаять похаяли,
даже записали меня в исключительно багоделов и несерьёзных людей, ни за что вообще, а по делу так никто
ничего и не скажет. А ведь в 2011-м даже никто и близко не педрил как отреверсить рендер карты, что такое
тайлатры и как полностью формализовать сетку(да и по сетке сейчас не знают, уверен). Ни америкосы, ни наши.
Но вот дела, с автором мода уже года два как не общаюсь, стримов почти нет(раз в неск. месяцев), но почему-то
люди продолжают интересоваться модом и софтом, даже когда уже ноль движухи.

Кликните здесь для просмотра всего текста
Вложения
Тип файла: zip MP_EDIT.zip (8.74 Мб, 1 просмотров)
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
29.04.2020, 04:31



Power_Basic, BYVAL создаёт копию, дословно передача параметра "по значению",
BYREF - по ссылке, т.е. модификация(если таковая будет внутри процедуры) затронет уже
имеющийся экземпляр данных.

FreeBASIC код, поясняющий это(любой другой бейсик должен работать сходно):
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DECLARE SUB Func1 (BYVAL a AS INTEGER, BYREF b AS INTEGER)
 
DIM AS INTEGER c, d
 
 Func1 c, d
 PRINT c, d
 SLEEP
 
SUB Func1 (BYVAL a AS INTEGER, BYREF b AS INTEGER)
 
  a = 1
  b = 2
 
END SUB
0
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,088
Записей в блоге: 7
29.04.2020, 11:51
Цитата Сообщение от Power_Basic Посмотреть сообщение
А как отличить, когда юникодную просят, а когда ANSI-шную?
Цитата Сообщение от Power_Basic Посмотреть сообщение
LPCWSTR

Цитата Сообщение от Power_Basic Посмотреть сообщение
Прикрепил фрагмент кода с буржуйского форума по PowerBasic'у.
Там передается указатель. Если бы было ByRef передавался указатель на указатель (вероятно, PowerBasic не использую).

Цитата Сообщение от Power_Basic Посмотреть сообщение
The trick говорит, что надо просто строку передавать, а вы, - просто указатель на строку.
Это зависит от компилятора.
0
Модератор
10061 / 3906 / 885
Регистрация: 22.02.2013
Сообщений: 5,856
Записей в блоге: 79
29.04.2020, 13:57
Цитата Сообщение от locm Посмотреть сообщение
Ну да полный, а не компилируется из-за плохой погоды на Марсе?
Нет, не компилируется потому что ты не читаешь что тебе пишут. pObj - это объект, а ты его не создал. Я написал уже не раз что любую логику на которую нужно ссылаться через ссылки нужно оборачивать в объекты. Ты обернул? В чем проблема?

Цитата Сообщение от locm Посмотреть сообщение
Где же совместимы если число аргументов и возвращаетмый тип не соответствуют действительности.
Соответствует. Где не соответствует?

Цитата Сообщение от locm Посмотреть сообщение
Декларация как в документации MS, но вызов не соответствует декларации. Судя по декларации должен быть возвращен статус.
Так он и возвращается. Я же описал. Ты читай внимательнее просто.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
Открывать то, что не относится к предмету его компетенции редактор и не обязан,
это нигде не заявлено.
Ну и падать не обязан. Как раз-таки падение из-за небезопасного программирования, поскольку мы имеем AV насколько я понял.

Цитата Сообщение от Power_Basic Посмотреть сообщение
А разве это не одно и то же?
BSTR - это немного другое.

Цитата Сообщение от Power_Basic Посмотреть сообщение
Разместить где-то в памяти строку с нулевым байтом в самом её конце, потом положить в стек адрес (он же указатель) этой строки и после этого вызывать функцию, правильно?
Не байтом, а нуль-терминалом. А он для каждой кодировки свой! Передача описана правильно.

Цитата Сообщение от Power_Basic Посмотреть сообщение
Правильно я понимаю, что так делать необязательно только в языках с нестрогой типизацией? А в языках со строгой типизацией как обстоит дело?
Не пойму в чем вопрос. Я говорил что необязательно делать фиксированные строки с нуль терминалом в конце.

Цитата Сообщение от Power_Basic Посмотреть сообщение
Прикрепил фрагмент кода с буржуйского форума по PowerBasic'у. Там как раз передаётся именно указатель и именно по значению.
Почему-то иногда вот так передают, как показано на рисунке, а иногда просто строкой. Я пока не могу отфильтровать, в каких случаях надо передавать так, а в каких эдак. Обычно решаю эту проблему методом тыка, путём "примерки" нескольких разных вариантов. Когда какой-то из них сработает, ну и хорошо, можно кодить дальше
Не знаю как в PowerBasic'е. StrPtr в VB6 получает данные буфера BSTR. VarPtr к слову возвращает адрес BSTR. BSTR - это ссылочный безопасный тип строк с предпросчитанной длиной и нуль-терминалом в конце. BSTR можно передать как по ссылке, так и по значению. По ссылке передается обычно для возврата значения в этом параметре, во всех остальных случаях по значению. В качестве оптимизации можно передавать по ссылке в VB6 чтобы не делать копирование строки в некоторых случаях.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
Я вот убеждён что "показать" это была исключительно херовая идея, потому что поржать поржали, похаять похаяли,
даже записали меня в исключительно багоделов и несерьёзных людей, ни за что вообще, а по делу так никто
ничего и не скажет. А ведь в 2011-м даже никто и близко не педрил как отреверсить рендер карты, что такое
тайлатры и как полностью формализовать сетку(да и по сетке сейчас не знают, уверен). Ни америкосы, ни наши.
Но вот дела, с автором мода уже года два как не общаюсь, стримов почти нет(раз в неск. месяцев), но почему-то
люди продолжают интересоваться модом и софтом, даже когда уже ноль движухи.
Да забей, пиши как хочешь проги.

Цитата Сообщение от Power_Basic Посмотреть сообщение
The trick говорит, что надо просто строку передавать, а вы, - просто указатель на строку.
Я так говорю потому что VB6 сам передаст как надо:
Если у тебя передача по значению - он передаст адрес BSTR;
Если у тебя передача по ссылке - он передаст указатель на BSTR;
Если у тебя ANSI строка, то он сам сконвертирует ее в ANSI и "скормит" функции;
Если у тебя UNICODE строка, то он не будет конвертировать, т.к. все строки в VB6 в юникоде.
0
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,088
Записей в блоге: 7
29.04.2020, 14:13
Цитата Сообщение от The trick Посмотреть сообщение
Нет, не компилируется потому что ты не читаешь что тебе пишут. pObj - это объект, а ты его не создал.
Я попросил полный код, на что вы ответили.
Цитата Сообщение от The trick Посмотреть сообщение
Ну это в принципе полный код.
Полный код означает что объект создан и т. д. Вам что сложно написать полный код?

Цитата Сообщение от The trick Посмотреть сообщение
Ты обернул?
Выше уже ответил.

Цитата Сообщение от The trick Посмотреть сообщение
Соответствует. Где не соответствует?
Посчитайте число аргументов и посмотрите на возвращаемое значение. https://docs.microsoft.com/en-... eamonfilea
Сколько там аргументов и что возвращается? А что в вашем коде? Вызов в вашем коде соответствует данным в документации? Напишите код согласно документации, а не нарушая ее.

Цитата Сообщение от The trick Посмотреть сообщение
Так он и возвращается.
Возвращается ссылка на объект, а не статус выполнения функции. При успешном выполнении функция возвращает 0, а в вашем коде ссылку объект. Это противоречит документации.
0
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,088
Записей в блоге: 7
29.04.2020, 14:20
Цитата Сообщение от The trick Посмотреть сообщение
С безопасным API:
Некомпилируется.
Можете выложить нормальный код, который собирается без ошибок?
Миниатюры
Быстрый старт в изучении C++ для относительно опытных программистов Basic  
0
Модератор
10061 / 3906 / 885
Регистрация: 22.02.2013
Сообщений: 5,856
Записей в блоге: 79
29.04.2020, 14:41
Цитата Сообщение от locm Посмотреть сообщение
Полный код означает что объект создан и т. д. Вам что сложно написать полный код?
Полный код обозначает что
Поместите в ссылку адрес выделенной памяти функцией LocalAlloc.
Не имеет значения какой объект, чтобы присвоить одну сущность другой достаточно оператора =.
Ссылка помещается в ptr объекта pObj. В чем загвоздка? Что ты сделал для того чтобы у тебя это заработало? Почему я должен все вот так разжевывать? Потрудись, последуй моим советам и сделай сам.

Цитата Сообщение от locm Посмотреть сообщение
Посчитайте число аргументов и посмотрите на возвращаемое значение. https://docs.microsoft.com/en-... eamonfilea
Сколько там аргументов и что возвращается? А что в вашем коде? Вызов в вашем коде соответствует данным в документации? Напишите код согласно документации, а не нарушая ее.
И что? Ты читал про концепцию о которой я написал? Тебя не смущает что к примеру SpVoice.Speak о котором говорит ТС вызывается так как он вызывается, а не как в документации к C++? Люди 20 лет использовали коллекции/словари, вызывали методы, Add, Remove, получали свойства Count, Item, но тут пришел locm и говорит не нарушайте документации .
Я даже не буду на это отвечать, тем более я уже все по этому поводу сказал. Если ты игнорируешь мои посты, мои тесты, мой код, почему я должен что-то предъявлять и по 100 раз объяснять? Честно, надоело.

Цитата Сообщение от locm Посмотреть сообщение
Возвращается ссылка на объект, а не статус выполнения функции. При успешном выполнении функция возвращает 0, а в вашем коде ссылку объект. Это противоречит документации.
Не противоречит. Почему? Читай выше.

Цитата Сообщение от locm Посмотреть сообщение
Некомпилируется.
Можете выложить нормальный код, который собирается без ошибок?
Миниатюры
Подключи библиотеку OLEEXP.TLB, а также модуль mIID который идет с этой библиотекой.
Миниатюры
Быстрый старт в изучении C++ для относительно опытных программистов Basic  
0
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,088
Записей в блоге: 7
29.04.2020, 14:51
Цитата Сообщение от The trick Посмотреть сообщение
Почему я должен все вот так разжевывать?
Вам реально сложно написать несколько строк кода? Или это просто невозможно и это является причиной?
0
Модератор
10061 / 3906 / 885
Регистрация: 22.02.2013
Сообщений: 5,856
Записей в блоге: 79
29.04.2020, 14:56
Цитата Сообщение от locm Посмотреть сообщение
Вам реально сложно написать несколько строк кода? Или это просто невозможно и это является причиной, а остальное отговорки?
Что невозможно? Ну я написал ведь код. Ты спросил почему не работает, я сказал обернуть в объект, ты просишь опять код. Это ли не разжевывание? Пару постов назад я приводил пример обертывания сущностей в VB6 делая аналог кода на C. И ты хочешь сказать мне что ты это читал после того что ты мне сейчас говоришь? Ты издеваешься? Мне лично кажется что ты троллишь меня.
0
Эксперт по электронике
7144 / 3323 / 342
Регистрация: 28.10.2011
Сообщений: 13,088
Записей в блоге: 7
29.04.2020, 15:22
Цитата Сообщение от The trick Посмотреть сообщение
Мне лично кажется что ты троллишь меня.
Нет, я просто прошу рабочий код. Что сложного написать? Вы лучше знаете VB чем я.
Объясните в чем сложность написания этого кода? Давно бы уже написали и закрыли эту тему. Возможно что вы мягко говоря "пошутили" написав что ссылки и указателя аналогичны. Это объясняет почему под любым предлогом не выкладываете код. Потому что его невозможно написать. Я прав?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2020, 15:22

набор опытных C++ программистов
Большой иностранный банк проводит набор опытных C++ программистов для IT-департамента своего московского офиса. Необходимы кандидаты с...

Приглашаю На работу Опытных Программистов
Всем привет . Я ищю Хороших программистов для работы над Онлайн игрой ( в типе neverlands) От вас Требую одно хорошую ...

Нужен совет опытных программистов на C#
Всем добрый день! Я здесь абсолютно новенький! Так что прошу сразу не кидать камнями если задаю вопросы не там где нужно! :) Совсем...

Нужен совет опытных программистов
Задача: Написать систему логирования LS кода, подсчета производительности (как долго исполняется LS код) и учета ошибок. Цель: получить...

Требуется совет опытных программистов
Основы С++ более менее изучены. Что же дальше? Что учить чтоб писать хоть какие то простенькие прикладные программы?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
240
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru