Я написал функцию в C ++, делая DLL:
functions.h:
#ifndef FUNCTIONS_H
#define FUNCTIONS_Hint DLLsquare(int x);
#endif /* FUNCTIONS_H */
functions.cpp:
#include "functions.h"int DLLsquare(int x){
return x*x;
}
Я скомпилировал это в DLL. Теперь я хотел бы импортировать это в Pascal Script:
program TestDLL;
function Square(x: Integer): Integer;
external '[email protected]';
begin
end.
Теперь это не компилируется. Я получил:
(7: 1): точка с запятой (‘;’) ожидается в строке 6
Компиляция не удалась.
Несколько уроков в Интернете говорят мне, что это именно тот путь, так чего мне здесь не хватает?
Pascal Script выдаст ошибку «точка с запятой», если вы объявляете внешнюю функцию и у вас нет обработчика, назначенного OnExternalProc
событие.
Вы можете реализовать это самостоятельно, или вы можете использовать DllExternalProc
от uPSC_dll Блок. Рассмотреть вопрос о звонке RegisterDll_Compiletime
на вашем компоненте компилятора, который назначает OnExternalProc
событие и регистрирует две функции для вызова ваших скриптов, UnloadDll
а также DLLGetLastError
,
Хотя и понятно, что возникает ошибка, когда хост-программа не предоставила средств для обработки внешних функций, конкретная формулировка сообщения об ошибке бессмысленна. Я призываю вас подать проблему с проектом, чтобы улучшить его.
Других решений пока нет …