| ||
BxCAAMInterpretorData.pas
), находящиеся в папке CAAM\Units\Common . В них вы найдете описания интерфейса CAAM (см. IInterpreterCAAMExternalInterface), декларацию примитивных типов и встроенных структур (см. Структуры данных), кроме того там вы найдете некоторые полезные сервисы (Слежение за вычислениями, обработка ошибок и прочее);extern "C" __declspec(dllexport) // директивы для экспорта функции void DemoKirhgofTransformExecute( // недекларируемый интерфейс интерпретатора CAAM: PInterpreterCAAMExternalInterface pExternalInterface, const TOptics &InOptics, // входной по ссылке, хотя можно и по указателю POptics OutOptics, // выходной по указателю, хотя можно и по ссылке const int &ExpCount, // входной по ссылке const double &lamda, // входной по ссылке const double &z // входной по ссылке ){ // тело функции }
try{ // выделение памяти try{ Progress(0); // сбросили уровень выполнения for ( unsigned int index = 0; index < Count; index++){ // сложные вычисления // следим за процессом вычислений: Progress((double)(index + 1)/(double)Count * 100.0); // тут же будет сгенерирован EExit в случае необходимости в завершении } } _finally { // освобождение выделенной памяти } } catch (const std::exception &e) { // проверка ошибок с их выводом при отлове (всех) исключений: Except(pExternalInterface, &e); } catch (const std::exception *e) { // указатели обрабатываются аналогично, дублируются постольку поскольку...: Except(pExternalInterface, e); }
// Комментарий... void DemoKirhgofTransformExecute( TOptics InOptics, // входной TOptics OutOptics, // выходной int ExpCount, // входной double lamda, // входной double z // входной );