Пишу С++ код, управляющий LabView программой. Управление производится через ActiveX, а именно:
Код: Выделить всё
_ApplicationPtr pLV;
VirtualInstrumentPtr pVI;
_bstr_t lvPath(VI_PATH);
_bstr_t lvPassword("");
_variant_t lv_ctrl;
CoInitialize(NULL);
// Create Reference to LabVIEW ActiveX COM object
pLV.CreateInstance("LabVIEW.Application");
// Create Reference to VI (LabView source Object)
pVI.CreateInstance("LabVIEW.VirtualInstrument");
// assign an object reference to the pVI.
pVI = pLV->GetVIReference(lvPath, lvPassword, FALSE, 0x01);
// configure the VI to show its front panel on Call.
pVI->ShowFPOnCall = TRUE;
pVI->Run(TRUE);
И если состояния кнопок типа Push Button (типа TRUE-нажато и FALSE-не нажато) и даже строки из окошек читаются вполне нормально, то при попытке узнать состояние кнопки типа Radio Button возникает ошибка.
Иными словами, "затык" происходит вот здесь:
lv_ctrl = pVI->GetControlValue(_bstr_t("RadioButton Name"));
Прошу "ткнуть носом" в причину ошибки ;)