Здравствуйте. Прочитал материал по данной теме на вашем форуме, но все еще возникает ошибка. Надеюсь на вашу помощь.
Необходимо отобразить объекты из rsc классификатора в диалоговом окне(ОС AstraLinux, графика на Qt). Возникла проблема при попытке использовать функцию mapPaintObject()программа каждый раз вылетает.
функция mapPaintExampleObjectByFuncToXImage(...) возвращает 1;
В качестве примера привожу мой код:
void Dialog::drawObject()
{
QPixmap *buf;
QStringfileName = QFileDialog::getOpenFileName(this, QString::null, HRSC(*.rsc)");
if (!mapCreateTempSite(fileName.toAscii().data())){
return;
}
HMAP hMap = mapCreateTempSite(fileName.toAscii().data());
RECT *rect = new RECT;
rect->bottom = 0;
rect->left = 0;
rect->right = 40;
rect->top = 40;
XCONTEXT cont;
cont.xcDisplay = ui->textBrowser->buf->x11Info().display();
cont.xcWindow = ui->textBrowser->winId();
cont.xcContext = XCreateGC(cont.xcDisplay, cont.xcWindow, 0, 0);
cont.xcPoint.X = 0;
cont.xcPoint.Y = 0;
if (!mapGetActiveSite(hMap)) {
return;
}
HSITE hsite = mapGetActiveSite(hMap);
if (!mapGetRscIdent(hMap, hsite)) {
return;
}
HRSC hrsc = mapGetRscIdent(hMap, hsite);
intobjectCount = mapGetRscObjectCount(hrsc);
RSCOBJECT *object = new RSCOBJECT;
for (inti = 1; i<= objectCount; i++) {
mapGetRscObject(hrsc, i, object);
mapPaintObject(hMap, (unsigned long int)(&cont), rect, object->Code);
}
}
Необходимо отобразить объекты из rsc классификатора в диалоговом окне(ОС AstraLinux, графика на Qt). Возникла проблема при попытке использовать функцию mapPaintObject()программа каждый раз вылетает.
функция mapPaintExampleObjectByFuncToXImage(...) возвращает 1;
В качестве примера привожу мой код:
void Dialog::drawObject()
{
QPixmap *buf;
QStringfileName = QFileDialog::getOpenFileName(this, QString::null, HRSC(*.rsc)");
if (!mapCreateTempSite(fileName.toAscii().data())){
return;
}
HMAP hMap = mapCreateTempSite(fileName.toAscii().data());
RECT *rect = new RECT;
rect->bottom = 0;
rect->left = 0;
rect->right = 40;
rect->top = 40;
XCONTEXT cont;
cont.xcDisplay = ui->textBrowser->buf->x11Info().display();
cont.xcWindow = ui->textBrowser->winId();
cont.xcContext = XCreateGC(cont.xcDisplay, cont.xcWindow, 0, 0);
cont.xcPoint.X = 0;
cont.xcPoint.Y = 0;
if (!mapGetActiveSite(hMap)) {
return;
}
HSITE hsite = mapGetActiveSite(hMap);
if (!mapGetRscIdent(hMap, hsite)) {
return;
}
HRSC hrsc = mapGetRscIdent(hMap, hsite);
intobjectCount = mapGetRscObjectCount(hrsc);
RSCOBJECT *object = new RSCOBJECT;
for (inti = 1; i<= objectCount; i++) {
mapGetRscObject(hrsc, i, object);
mapPaintObject(hMap, (unsigned long int)(&cont), rect, object->Code);
}
}