Delphi порта к C++ постепенно

Ваш лучший способ - передать элементы вашего массива, разделенные символом, которого никогда не будет ни в одном из слов (например, запятая).

Возьмем этот фрагмент, например:

app.get('api/prices/:ids', function(req, res){
    var ids = req.params.ids.split(',');
    console.log(ids); //['shopId1', 'shopdId2']
})

Конечная точка, к которой вы обращаетесь с GET-запросом:

http://localhost:3000/api/prices/shopId1,shopId2

5
задан Jérôme 11 November 2010 в 11:16
поделиться

4 ответа

Наилучший способ действий во многом зависит от среды разработки C ++.

Если это C ++ Builder, у вас есть две возможности:

  • Используйте пакеты времени выполнения вместо обычных библиотек DLL. Это избавит вас от многих головных болей, когда дело доходит до маршалинга строк и отображения иерархий классов в плоские функции DLL.

  • Используйте смешанный код. Вы можете смешивать код Delphi / Pascal с кодом C ++ в одном проекте. (Только один язык в одном модуле / модуле)

Если это какой-либо другой компилятор C ++:

  • Пойдите так, как вы предлагали с DLL. Вы должны создать какой-то слой / фасад, чтобы сопоставить функциональность ваших классов с плоскими функциями DLL.

  • Если вы хотите использовать обычную DLL, даже если вы используете C ++ Builder, вы можете попробовать использовать диспетчер разделяемой памяти, например ShareMem (поставляется с Delphi) или FastMM ( SourceForge ), чтобы разрешить передачу строка s вместо PChar s.

  • Создайте .objs вместо .dcus, чтобы оба компилятора работали с одним и тем же форматом вывода. Затем свяжите их прямо в свою программу на C ++. По сути, это то же самое, что и при создании DLL, но статично. Вы обнаружите определенные виды ошибок во время компиляции, а не во время выполнения.

9
ответ дан 18 December 2019 в 07:56
поделиться

Наверное, проще пойти другим путем - переписать бизнес-логику на C ++ и вызывать ее из Delphi через интерфейсы C. Это тем более, что одна из сильных сторон Delphi - это работа с графическим интерфейсом пользователя.

6
ответ дан 18 December 2019 в 07:56
поделиться

Преобразуйте ваше приложение Delphi в dll-файлы. Вы должны выяснить какой-нибудь разумный API и предоставить его в dll. Затем используйте эти dll-файлы из приложения C ++.

Также есть возможность создавать объекты COM +, но они относятся к технологии Windows (из-за QT, я полагаю, вы собираетесь создать многоплатформенное приложение).

2
ответ дан 18 December 2019 в 07:56
поделиться

В целом, хотя существуют варианты на разных языках, я всегда обнаруживал, что замораживание более старой версии и переписывание следующей основной версии на новом языке в конечном итоге было более эффективным по времени.

Но я пошел другим путем. (увеличение процента C ++, которое я в конечном итоге перенес в Delphi)

2
ответ дан 18 December 2019 в 07:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: