WinCC & ActiveX
Eugene;
1.12.04
Probuju polucit dostup k activeX, zapuskaju na vipolnenie kod :
#define GetObjectA GetObject
__object *obj = NULL;
__object *pic = NULL;
__object *ocx = NULL;
VARIANT v;
BSTR bstrText1;
printf("Get PDLRuntime \r\n");
obj = __object_create("PDLRuntime");
if (!obj)
{
printf("obj NULL!!!\r\n");
return;
}
pic = obj->GetPicture("NewPdl0");
if (!pic)
{
printf("pic NULL!!!\r\n");
return;
}
ocx = pic->GetObject("Control1");
if (ocx == NULL)
{
printf("ocx NULL!!!\r\n");
return;
}
bstrText1 = SysAllocString("Variant String");
VariantInit(&v);
v.vt = VT_BSTR;
v.u.bstrVal = bstrText1;
ocx->SetText(4,4,v);
ocx->SetFontSize(14);
ocx->SetFontBold(TRUE);
__object_delete(obj);
__object_delete(pic);
__object_delete(ocx);
}
i polucaju oshibku vo vrema vipolnenija, o nevozmoznosti polucit
dostup k PDLRuntime. Podskazite pozalusta, cto mne sdelat ctobi eto
rabotalo, v cem precina oshibki ?
Vivod WinCC vo vrema vipolnenija :
Get PDLRuntime
F6dc (49) : general protection fault..
====================================OnErrorExecute====================================
dwErrorCode1: (ThreadId 5396) 1007001
dwErrorCode2: (ThreadId 5396) 4100
szErrorText: (ThreadId 5396) Exception in Action
szErrorTextException: (ThreadId 5396) access violation
szApplicationName: (ThreadId 5396) PDLRuntimeSystem
bCycle: (ThreadId 5396) acycle
szFunctionName: (ThreadId 5396) @b
lpszPictureName: (ThreadId 5396) NEWPDL0
lpszObjectName: (ThreadId 5396) Button8
lpszPropertyName: (ThreadId 5396) (NULL)
dwParamSize: (ThreadId 5396) 12
====================================OnErrorExecute====================================
Re: WinCC & ActiveX
Маслов Дмитрий; 3.12.04
Есть у меня подозрение, что ошибка возникает при работе со
строками. Попробуйте выкинуть из скрипта весь код, который работает
с типом variant и со строками. Оставьте только установку целого и
логического свойства. Если заработает - поймете в чем
проблема...