Губин Игорь писал(а): 19 Июнь 2022, 17:05
PavelNK писал(а): 17 Июнь 2022, 6:47
C# не пробовал, а из Delphi и C++ вызывал.
А краткий ликбез можно? Вроде всё сделал, но творится невесть что. Или у меня крыша едет, или у компилятора C++ из поставки Clariona.
Короче, надо функцию типа
ClaFunc(*CString,Real,Real),ULong вызвать из C++
Нужен пример описания на C и пример параметров функции в Cla
ClsFunc(*CString,Real,Real),ULong,Pascal
unsigned long ClsFunc(char**, double, double);
char *FStr="First String";
double v1 = 2.0;
double v2=3.5;
unsigned iret;
iret = ClsFunc(&FStr, v1, v2);
P.S. Вариант unsigned long ClsFunc(char**, unsigned, double, double); где второй параметр длина, я, тоже, пробовал.
Были рабочие вещи, поискал, но не нашел
Хорошо бы тестовый проект на Клаше, чтобы можно было попробовать.
Там вся фишка в соглашениях по передаче параметров, они должны быть одинаковые.
Есть передача через стэк, бывает С-шная, а бывает Паскалевская. Есть передача через регистры, есть через регистры+стэк.
В дельфи указывается в описании процедуры, например stdcall - паскаль. Для С вроде так и пишется С. В Клашином С через прагмы. В MS не помню