|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.08.2009, 19:48 | #1 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
Прошу помощи в конвертации на Делфи кода от С++.
Добрый день!
Прошу помощи в конвертации на Делфи следующего кода: Код:
Код:
Последний раз редактировалось SkAndrew; 03.08.2009 в 20:43. |
04.08.2009, 00:20 | #2 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
float -> Single
short *buf; -> PSmallInt RESAMPSTUFF *r -> r: PRESAMPSTUFF (надо определить тогда тип - указатель на эту структуру) if (r->flags&BASS_SAMPLE_MONO) -> if r.flags and BASS_SAMPLE_MONO <> 0 for -> while, а не repeat, если repeat всё же уместен по контексту, то условие обратное: (l>=length) or (r.readpos>=bufsamp); p=(int)r->readpos; -> Round memmove(dst, src, count) -> move(dst, src, count) p=2*(int)i; -> Round *buffer++= ... -> после = ещё перемещение на следующий элемент Может, даже наверное, что-то ещё. Но это "дословно", с указателем на массив любого размера в структуре и параметрах функции проблемы. Или надо динамический массив, или если надо чтобы прямо как на C++, то создай тип - массив [0..0], указатель на него и отключи проверку диапазона: {$R-}. |
04.08.2009, 00:41 | #3 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
Спасибо за подсказки, а Вам сложно исправить мой дельфийский перевод и как в этом случае должна на паскале выглядеть строка :
Код:
|
04.08.2009, 12:40 | #4 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Если исправлять перевод, то надо исправлять с указателями/массивами. Например, тут непонятно, что за modf, если он свой, на Delphi, можно всё переделать на динамические массивы, а если на C/C++, то уже надо делать чтобы было так же, как на C.
В memmove и move порядок параметров разный: Код:
|
04.08.2009, 16:04 | #5 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
Спасибо за помощь, но на этих строчках
Код:
Код:
Спасибо Последний раз редактировалось SkAndrew; 04.08.2009 в 16:22. |
04.08.2009, 16:28 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Правильно так нельзя.Mоve это не проглотит. Что ты хочешь сделать действием r.buf+p?
I'm learning to live...
|
04.08.2009, 22:29 | #7 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
Исходник выложен в полном виде в первом посте.
В Си это работает, а как записать в паскале? Спасибо. |
05.08.2009, 11:58 | #8 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
А, ну да. Там параметры-varы
Код:
Код:
|
05.08.2009, 20:28 | #9 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
Спасибо за ответ, только я не понял нужны обе строчки
Код:
Код:
|
06.08.2009, 12:41 | #10 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Вторая, в первой просто прибавление числа к указателю.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прошу помощи:) | valiza | Помощь студентам | 0 | 03.07.2009 11:58 |
Прошу помощи. | Brian Lee Jones | Свободное общение | 0 | 19.06.2008 00:21 |
Прошу помощи в делфи | sergeyfsd | Помощь студентам | 5 | 23.05.2008 20:39 |
Прошу помощи! | Oksana | Общие вопросы Delphi | 6 | 11.02.2007 18:36 |