невозможно получить компоненты CPP WPTools- (Delphi) для установки в C ++ Builder

Я работаю с C ++ Builder XE6 & XE7. Я получил некоторые компоненты CPP из компонентов WPTools (на основе Pascal) и не смог заставить их работать с WPTools7, хотя они отлично работали с WPTools6 и более ранними версиями XE.

При попытке создать мои производные компоненты CPP, Builder, похоже, не нравится передача по ссылочному коду, который он находит в файлах WPTools .HPP.

Линии, подобные следующему:

extern DELPHI_PACKAGE bool __fastcall WPLocateNextPrev(bool Previous, TParagraph* &active_paragraph, int &active_posinpar, bool &EOF);
extern DELPHI_PACKAGE bool __fastcall WPLocateNext(TParagraph* &active_paragraph, int &active_posinpar, bool &EOF);
extern DELPHI_PACKAGE bool __fastcall WPLocatePrev(TParagraph* &active_paragraph, int &active_posinpar, bool &BOF);``

За что я получаю такие ошибки:

[bcc32 Error] WPRTEDefs.hpp(6117): extern variable cannot be initialized
[bcc32 Error] WPRTEDefs.hpp(6117): Improper use of typedef 'TParagraph'
[bcc32 Error] WPRTEDefs.hpp(6117): Undefined symbol 'active_paragraph'

Для меня не очевидно, что вышеприведенные объявления в коде .HPP пытаются инициализировать переменную extern, но, пожалуйста, сообщите мне, если это так.

Разработчик, обычно полезный в прошлом, не очень помог. Я не уверен, что он не знает, в чем проблема, или у него просто нет других клиентов, которые пытались получить компоненты CPP так, как я.

Если мне придется отказаться от компонентов, производных от CPP WPTools, вероятно, потребуется целый месяц или больше, чтобы пересмотреть весь мой код, поэтому я очень хочу найти решение, если оно есть. Кто-нибудь знает решение для этого?

У меня сложилось впечатление, что можно получить тот же результат, что и при передаче по ссылке в C ++, если вы просто передадите указатель, при условии, что вы не задерживаете переменную и явно не проверяете значение NULL.

Я подумываю об изменении кода WPTools7, чтобы посмотреть, решит ли проблема обход этой передачи по ссылке, но, поскольку другие разработали для Delphi и Builder гораздо дольше, чем я, я решил обратиться за советом, прежде чем тратить слишком много много времени на это.

Так как источник находится в Object Pascal / Delphi, я должен попытаться выяснить, что означает не разыменование. У меня складывается впечатление, что все в Object Pascal по сути является указателем, но я не совсем уверен.

В любом случае, я подумал, что спрошу, пробовал ли кто-нибудь что-нибудь подобное? И / или если у кого-то есть мысли о том, поможет ли это мне или нет, или создаст какие-нибудь новые проблемы?

Заранее благодарю за любую помощь.

0

Решение

Задача ещё не решена.

Другие решения