Qt ObjectARX 2022
QT中的ARX配置
LoadQtDlls.pro
1 TARGET = QTARXLoadQtDlls 2 #the sdk include path 3 INCLUDEPATH += "D:\ObjectARX 2022\inc" 4 INCLUDEPATH += "D:\ObjectARX 2022\incx64" 5 6 #rxapi.lib; acdb21.lib; acge21.lib; acad.lib; ac1st21.lib; accore.lib; 7 LIBS+= L"D:\ObjectARX 2022\libx64" lrxapi 8 LIBS+= L"D:\ObjectARX 2022\libx64" lacdb24 9 LIBS+= L"D:\ObjectARX 2022\libx64" lacge24 10 LIBS+= L"D:\ObjectARX 2022\libx64" lacad 11 LIBS+= L"D:\ObjectARX 2022\libx64" lac1st24 12 LIBS+= L"D:\ObjectARX 2022\libx64" laccore 13 14 #DEF_FILE 15 DEF_FILE += $$PWD/AcRxDefault.def 16 17 #use md dll 18 QMAKE_CXXFLAGS += /MD 19 20 #change .dll to .arx 21 TARGET_EXT = .arx 22 23 #remove _DEBUG 24 DEFINES = _DEBUG 25 DEFINES += _OBJECT_ARX_VERSION_X64_=2022 26 27 QT += core 28 QT += gui 29 QT += widgets 30 QT += qml 31 32 #Qt project template 33 TEMPLATE = lib 34 35 SOURCES += this_mainpp \ 36 formpp 37 38 RESOURCES += \ 39 images.qrc 40 41 DESTDIR = $$PWD/../../release/Autocad2022 42 43 FORMS += \ 44 form.ui 45 46 HEADERS += \ 47 form.hARX入口书写
this_mainpp
1 #pragma warning( push) 2 #pragma warning (disable: 4189 4100 ) 3 #include <Windows.h> 4 #include <arxHeaders.h> 5 #pragma warning( pop) 6 7 #include <string_view> 8 9 using namespace std::string_literals; 10 11 #include <QtWidgets> 12 #include <QtQml> 13 #include<QMessageBox> 14 15 inline void HellowWorld() 19 inline void HellowWorldARX() 27 auto varDataTime = QDateTime::currentDateTime().toString().toStdWString(); 28 varDataTime = LR"(Hellow World!)" + varDataTime ; 29 acutPrintf(varDataTime_str()); 30 } 31 32 namespace 45 inline char** getArgv() ; 48 std::copy(qtApplicationPath.begin(), qtApplicationPath.end(), 49 static_cast<char*>(acadpath)); 50 argv[0] = static_cast<char *>(acadpath); 51 return argv; 52 } 53 } 54 }/*namespace*/ 55 56 extern "C" AcRx::AppRetCode 57 acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt) 70 ; 73 varImage.width(); 74 varImage.height(); 75 } 76 77 } 78 /*****************************************/ 79 acedRegCmds>addCmand( 80 L"SSTD_GLOBAL_CMD_GROUP", 81 L"HellowWorld", 82 L"HellowWorld", 83 ACRX_CMD_MODAL, 84 &HellowWorldARX); 85 }break; 86 case AcRx::kUnloadAppMsg: break; 87 default:break; 88 } 89 return AcRx::kRetOK; 90 } 91 92 /********************************/代码结构
结果展示
this.png
生成的arx
细节注意
arx同级目录的dll
arx同级目录的dll是qt编译出的,不然无法加载
使用的命令D:\Qt\5.15.2\msvc2019_64>windeployqt.exe C:\Users\yhx\Downloads\ObjectArxAutocad2018Vs2017Qt59master\ObjectArxAutocad2018Vs2017Qt59master\release\Autocad2022\QTARXLoadQtDlls.arx
CAD加载arx
使用命令arx
QT项目配置
下一篇:Qt ObjectARX实现获取AutoCAD的实体的DXF数据
Qt
pla文件怎么看,pla文件用什么打开?
pl1文件怎么看,pl1文件用什么打开?
pl文件怎么看,pl文件用什么打开?
pl0文件怎么看,pl0文件用什么打开?
pkt文件怎么看,pkt文件用什么打开?
pkm文件怎么看,pkm文件用什么打开?
pks文件怎么看,pks文件用什么打开?
pka文件怎么看,pka文件用什么打开?
pkh文件怎么看,pkh文件用什么打开?
pkg文件怎么看,pkg文件用什么打开?