能使用Q t实现对objectarx的多版本开发嘛?

能使用Q t实现对objectarx的多版本开发嘛?,如果可以具体该怎么实现?

Qt主要是用于开发跨平台的图形界面应用程序,而ObjectARX是一个用于AutoCAD开发的库,二者并没有直接的关系。不过,如果需要在Qt应用程序中调用ObjectARX的功能,则可以通过在Qt应用程序中嵌入AutoCAD ActiveX控件的方式来实现。
具体来说,可以在Qt应用程序中创建一个QAxWidget控件,然后将其作为ActiveX控件嵌入到Qt界面中,再调用ObjectARX的API。需要注意的是,由于ObjectARX是与AutoCAD版本相关的,因此需要根据不同的AutoCAD版本来选择不同的ObjectARX库文件。
以下是一个简单的示例代码,可以在Qt应用程序中调用AutoCAD的COM接口:

#include <QApplication>
#include <QAxWidget>
#include <QDebug>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    // 创建QAxWidget控件
    QAxWidget* axWidget = new QAxWidget();
    // 设置ActiveX控件的CLSID(AutoCAD的CLSID为"{E183B7FC-8C13-11D3-BC86-0060B0EC020B}")
    axWidget->setControl("{E183B7FC-8C13-11D3-BC86-0060B0EC020B}");
    // 调用AutoCAD的COM接口
    QVariant result;
    axWidget->dynamicCall("SetVariable(QString, QVariant)", "CMDECHO", true);
    axWidget->dynamicCall("Command(QString)", "LINE");
    axWidget->dynamicCall("Command(QString)", "0,0");
    axWidget->dynamicCall("Command(QString)", "100,100");
    axWidget->dynamicCall("Command(QString)", "QUIT");
    return a.exec();
}

需要注意的是,Qt应用程序需要使用32位编译器,并且需要将AutoCAD的安全设置中的“加载项”选项打开,才能正常调用AutoCAD的COM接口。