Я пишу DLL в Delphi с помощью ниже C++ пример:Преобразование функции C++ в Delphi: что делать с параметром void *?
USERDLL_API double process_message (const char* pmessage, const void* param)
{
if (pmessage==NULL) { return 0; }
if (param==NULL) { return 0; }
if (strcmp(pmessage,"state")==0)
{
current_state *state = (current_state*) param;
return process_state((current_state*)param);
}
}
К сожалению, я ничего не знаю о C++ и указателей. Что следует использовать вместо char * (PChar?) И void *?
function process_message (const pmessage: PChar; const param: ???): Double; export;
begin
???
end;
exports process_message;
Любая помощь с телом функции будет также высоко оценена. Я понимаю, что это не ракетостроение, но я бы не узнать основы C++ просто преобразовать пару строк, если кто-то достаточно любезен, чтобы сделать это для меня :-)
Изучение основ C++ - это то, что вы должны делать * независимо от того, нужно ли вам переводить этот код. Если вы работаете с Delphi, то работаете в Windows, а если работаете в Windows, то вам следует знать, как читать C и C++, поскольку почти вся документация, которую вы увидите, находится на этих языках. Если вы этого не сделаете, вы просто торчаете головой в песок. –
Хорошая точка, Роб. Просто я не профессиональный разработчик программного обеспечения. Я обычно делаю логику, и встроенные компоненты Delphi - это все, что мне нужно. Это был редкий случай, когда мне приходилось иметь дело с чем-то. Хвалите stackoverflow :-) – Mikhail