WinCC и DLL
Павел Власкин;
23.5.02
не могу вызвать функцию из dll-ки. при компиляции все ок, при
исполнении:
255,23.05.2002,15:05:21:634,1007001,4,,ASU_TP_2,SCRIPT,ExecuteError
in Action @6
ошибка возникает именно на вызове функции. DLL написана в дэлфи,
WinCC 5.0sp1, вызывающий скрипт:
{
#pragma code("RVSPasp.dll");
float LevToVol(int rvs, float level);
#pragma code();
float a=GetTagFloat("r1_lev");
float res = LevToVol(1,a);
return (res);
}
Re: WinCC и DLL
Костенич Дмитрий; 28.5.02
А ты не забыл случайно указать чтобы DLL собиралась для вызова
функций в C-шной конвенции (в MSVC для этого служит extern
"C"{})?
Если не забыл - отлаживай свою DLL...
Re: WinCC и DLL
Павел Власкин; 28.5.02
Не забыл. Там и через WinAPI можно, по идее :)
Function LevToVol(rvs:integer;level:single):single;cdecl;
Dll работает на ура, сделал в дельфе програмку, которая ее гоняет -
все ок.
расшифровать бы ошибку...
Re: WinCC и DLL
Колпащиков Сергей; 7.6.02
Добрый день.
Если вы писали DLL на Delphi, то может быть в этом проблема.
Если использовать RECORD,
необходимо снять флаг Aligned record field.
Иначе возникает проблема при использовании функций DLL не из под
Delphi и если вы вызываете, например, ODK функции из свой DLL.