Qt?5.9使用VTK顯示點(diǎn)云的詳解詳解
注意:
1.以下第一部分PCL安裝使用教程可供參考,第二部分在VS中使用Qt親測(cè)有效;第三第四部分有問題,希望通過這個(gè)教程了解如何使用Qt可視化點(diǎn)云的可能要失望了,如果你實(shí)現(xiàn)了還請(qǐng)不吝賜教。
2.目前我自己對(duì)于既使用Qt設(shè)計(jì)界面又能使用PCL庫(kù)的做法是在VS中使用PCL庫(kù)和Qt庫(kù),如果想可視化點(diǎn)云可能需要自己定義可視化類和控件了,最后我做到的話再補(bǔ)個(gè)教程。
3.基于VS中使用Qt庫(kù)和PCL庫(kù)生成的文件想要發(fā)布也跟一般的Qt程序相似,使用Qt自帶的Qt命令行在exe文件目錄下執(zhí)行windeployqt *.exe命令即可配置好所需dll;也可以自己運(yùn)行exe看缺什么dll并找到復(fù)制到當(dāng)前文件夾下也一樣。如果想進(jìn)一步做成安裝包,可使用setupfactory打包你的exe生成安裝包,這個(gè)以后我熟悉了也加個(gè)教程。
1.PCL安裝及在VS2013中使用PCL
?。?)下載PCL,下載地址
鏈接: https://pan.baidu.com/s/1dDsWsXlv9ln_UngRXg_qZg?pwd=j13m 提取碼: j13m
點(diǎn)擊PCL-1.8.0-AllInOne-msvc2015-win32.exe安裝即可。
(2)環(huán)境變量的配置。添加環(huán)境變量名稱為:
PCL_ROOT,路徑設(shè)為PCL的安裝根目錄。
path環(huán)境變量添加 %PCL_ROOT%\bin;%PCL_ROOT%\3rdParty\FLANN\bin;%PCL_ROOT%\3rdParty\Qhull\bin;%PCL_ROOT%\3rdParty\VTK\bin;%PCL_ROOT%\3rdParty\OpenNI2\Tools。
?。?)項(xiàng)目屬性配置。原本可以在項(xiàng)目-屬性中設(shè)置屬性,但是每一次都要設(shè)置未免太麻煩,所以這里打開安裝包附帶的PCLdebug.props和PCLrelease.props文件直接導(dǎo)入設(shè)置(如果沒有的話新建項(xiàng)目屬性表也可),打開方法為打開屬性管理器,右鍵對(duì)應(yīng)的解決方案平臺(tái)添加現(xiàn)有屬性表,然后Debug|Win32添加PCLdebug.props,Release|Win32添加PCLrelease.props即可。如下
這里添加的屬性表并沒有進(jìn)行設(shè)置,所以其實(shí)自己新建屬性表也是一樣的,之后我們要雙擊添加的debug,release屬性表分別進(jìn)行設(shè)置最后進(jìn)行保存即可在下一次直接添加這個(gè)屬性表就可以,不必多次設(shè)置。雙擊屬性表后在屬性設(shè)置中點(diǎn)擊配置屬性-VC++目錄,在包含目錄與庫(kù)目錄中分別添加如下目錄,
在屬性表-鏈接器-輸入中的附加依賴項(xiàng)添加如下依賴項(xiàng),如果為其他版本的只需把對(duì)應(yīng)文件夾里的lib文件添加到依賴項(xiàng)即可,為快速導(dǎo)出這些lib文件名,可使用批處理命令導(dǎo)出,參考http://chabaoo.cn/article/256395.htm。
//debug模式下添加的附加依賴項(xiàng): pcl_common_debug.lib pcl_features_debug.lib pcl_filters_debug.lib pcl_io_debug.lib pcl_io_ply_debug.lib pcl_kdtree_debug.lib pcl_keypoints_debug.lib pcl_ml_debug.lib pcl_octree_debug.lib pcl_outofcore_debug.lib pcl_people_debug.lib pcl_recognition_debug.lib pcl_registration_debug.lib pcl_sample_consensus_debug.lib pcl_search_debug.lib pcl_segmentation_debug.lib pcl_stereo_debug.lib pcl_surface_debug.lib pcl_tracking_debug.lib pcl_visualization_debug.lib libboost_atomic-vc120-mt-gd-1_59.lib libboost_chrono-vc120-mt-gd-1_59.lib libboost_container-vc120-mt-gd-1_59.lib libboost_context-vc120-mt-gd-1_59.lib libboost_coroutine-vc120-mt-gd-1_59.lib libboost_date_time-vc120-mt-gd-1_59.lib libboost_exception-vc120-mt-gd-1_59.lib libboost_filesystem-vc120-mt-gd-1_59.lib libboost_graph-vc120-mt-gd-1_59.lib libboost_iostreams-vc120-mt-gd-1_59.lib libboost_locale-vc120-mt-gd-1_59.lib libboost_log-vc120-mt-gd-1_59.lib libboost_log_setup-vc120-mt-gd-1_59.lib libboost_math_c99-vc120-mt-gd-1_59.lib libboost_math_c99f-vc120-mt-gd-1_59.lib libboost_math_c99l-vc120-mt-gd-1_59.lib libboost_math_tr1-vc120-mt-gd-1_59.lib libboost_math_tr1f-vc120-mt-gd-1_59.lib libboost_math_tr1l-vc120-mt-gd-1_59.lib libboost_mpi-vc120-mt-gd-1_59.lib libboost_prg_exec_monitor-vc120-mt-gd-1_59.lib libboost_program_options-vc120-mt-gd-1_59.lib libboost_random-vc120-mt-gd-1_59.lib libboost_regex-vc120-mt-gd-1_59.lib libboost_serialization-vc120-mt-gd-1_59.lib libboost_signals-vc120-mt-gd-1_59.lib libboost_system-vc120-mt-gd-1_59.lib libboost_test_exec_monitor-vc120-mt-gd-1_59.lib libboost_thread-vc120-mt-gd-1_59.lib libboost_timer-vc120-mt-gd-1_59.lib libboost_unit_test_framework-vc120-mt-gd-1_59.lib libboost_wave-vc120-mt-gd-1_59.lib libboost_wserialization-vc120-mt-gd-1_59.lib vtkalglib-7.0-gd.lib vtkChartsCore-7.0-gd.lib vtkCommonCore-7.0-gd.lib vtkCommonColor-7.0-gd.lib vtkCommonComputationalGeometry-7.0-gd.lib vtkCommonDataModel-7.0-gd.lib vtkCommonExecutionModel-7.0-gd.lib vtkCommonMath-7.0-gd.lib vtkCommonMisc-7.0-gd.lib vtkCommonSystem-7.0-gd.lib vtkCommonTransforms-7.0-gd.lib vtkDICOMParser-7.0-gd.lib vtkDomainsChemistry-7.0-gd.lib vtkexoIIc-7.0-gd.lib vtkexpat-7.0-gd.lib vtkFiltersAMR-7.0-gd.lib vtkFiltersCore-7.0-gd.lib vtkFiltersExtraction-7.0-gd.lib vtkFiltersFlowPaths-7.0-gd.lib vtkFiltersGeneral-7.0-gd.lib vtkFiltersGeneric-7.0-gd.lib vtkFiltersGeometry-7.0-gd.lib vtkFiltersHybrid-7.0-gd.lib vtkFiltersHyperTree-7.0-gd.lib vtkFiltersImaging-7.0-gd.lib vtkFiltersModeling-7.0-gd.lib vtkFiltersParallel-7.0-gd.lib vtkFiltersParallelImaging-7.0-gd.lib vtkFiltersProgrammable-7.0-gd.lib vtkFiltersSelection-7.0-gd.lib vtkFiltersSMP-7.0-gd.lib vtkFiltersSources-7.0-gd.lib vtkFiltersStatistics-7.0-gd.lib vtkFiltersTexture-7.0-gd.lib vtkFiltersVerdict-7.0-gd.lib vtkfreetype-7.0-gd.lib vtkGeovisCore-7.0-gd.lib vtkhdf5-7.0-gd.lib vtkhdf5_hl-7.0-gd.lib vtkImagingColor-7.0-gd.lib vtkImagingCore-7.0-gd.lib vtkImagingFourier-7.0-gd.lib vtkImagingGeneral-7.0-gd.lib vtkImagingHybrid-7.0-gd.lib vtkImagingMath-7.0-gd.lib vtkImagingMorphological-7.0-gd.lib vtkImagingSources-7.0-gd.lib vtkImagingStatistics-7.0-gd.lib vtkImagingStencil-7.0-gd.lib vtkInfovisCore-7.0-gd.lib vtkInfovisLayout-7.0-gd.lib vtkInteractionImage-7.0-gd.lib vtkInteractionStyle-7.0-gd.lib vtkInteractionWidgets-7.0-gd.lib vtkIOAMR-7.0-gd.lib vtkIOCore-7.0-gd.lib vtkIOEnSight-7.0-gd.lib vtkIOExodus-7.0-gd.lib vtkIOExport-7.0-gd.lib vtkIOGeometry-7.0-gd.lib vtkIOImage-7.0-gd.lib vtkIOImport-7.0-gd.lib vtkIOInfovis-7.0-gd.lib vtkIOLegacy-7.0-gd.lib vtkIOLSDyna-7.0-gd.lib vtkIOMINC-7.0-gd.lib vtkIOMovie-7.0-gd.lib vtkIONetCDF-7.0-gd.lib vtkIOParallel-7.0-gd.lib vtkIOParallelXML-7.0-gd.lib vtkIOPLY-7.0-gd.lib vtkIOSQL-7.0-gd.lib vtkIOVideo-7.0-gd.lib vtkIOXML-7.0-gd.lib vtkIOXMLParser-7.0-gd.lib vtkjpeg-7.0-gd.lib vtkjsoncpp-7.0-gd.lib vtklibxml2-7.0-gd.lib vtkmetaio-7.0-gd.lib vtkNetCDF-7.0-gd.lib vtkNetCDF_cxx-7.0-gd.lib vtkoggtheora-7.0-gd.lib vtkParallelCore-7.0-gd.lib vtkpng-7.0-gd.lib vtkproj4-7.0-gd.lib vtkRenderingAnnotation-7.0-gd.lib vtkRenderingContext2D-7.0-gd.lib vtkRenderingContextOpenGL2-7.0-gd.lib vtkRenderingCore-7.0-gd.lib vtkRenderingFreeType-7.0-gd.lib vtkRenderingImage-7.0-gd.lib vtkRenderingLabel-7.0-gd.lib vtkRenderingLOD-7.0-gd.lib vtkRenderingOpenGL2-7.0-gd.lib vtkRenderingVolume-7.0-gd.lib vtkRenderingVolumeOpenGL2-7.0-gd.lib vtksqlite-7.0-gd.lib vtksys-7.0-gd.lib vtktiff-7.0-gd.lib vtkverdict-7.0-gd.lib vtkViewsContext2D-7.0-gd.lib vtkViewsCore-7.0-gd.lib vtkViewsInfovis-7.0-gd.lib vtkzlib-7.0-gd.lib vtkGUISupportQt-7.0-gd.lib vtkRenderingQt-7.0-gd.lib vtkViewsQt-7.0-gd.lib flann_cpp_s-gd.lib qhullstatic-gd.lib OpenNI2.lib //release模式下添加的附加依賴項(xiàng): pcl_common_release.lib pcl_features_release.lib pcl_filters_release.lib pcl_io_release.lib pcl_io_ply_release.lib pcl_kdtree_release.lib pcl_keypoints_release.lib pcl_ml_release.lib pcl_octree_release.lib pcl_outofcore_release.lib pcl_people_release.lib pcl_recognition_release.lib pcl_registration_release.lib pcl_sample_consensus_release.lib pcl_search_release.lib pcl_segmentation_release.lib pcl_stereo_release.lib pcl_surface_release.lib pcl_tracking_release.lib pcl_visualization_release.lib libboost_atomic-vc120-mt-1_59.lib libboost_chrono-vc120-mt-1_59.lib libboost_container-vc120-mt-1_59.lib libboost_context-vc120-mt-1_59.lib libboost_coroutine-vc120-mt-1_59.lib libboost_date_time-vc120-mt-1_59.lib libboost_exception-vc120-mt-1_59.lib libboost_filesystem-vc120-mt-1_59.lib libboost_graph-vc120-mt-1_59.lib libboost_iostreams-vc120-mt-1_59.lib libboost_locale-vc120-mt-1_59.lib libboost_log-vc120-mt-1_59.lib libboost_log_setup-vc120-mt-1_59.lib libboost_math_c99-vc120-mt-1_59.lib libboost_math_c99f-vc120-mt-1_59.lib libboost_math_c99l-vc120-mt-1_59.lib libboost_math_tr1-vc120-mt-1_59.lib libboost_math_tr1f-vc120-mt-1_59.lib libboost_math_tr1l-vc120-mt-1_59.lib libboost_mpi-vc120-mt-1_59.lib libboost_prg_exec_monitor-vc120-mt-1_59.lib libboost_program_options-vc120-mt-1_59.lib libboost_random-vc120-mt-1_59.lib libboost_regex-vc120-mt-1_59.lib libboost_serialization-vc120-mt-1_59.lib libboost_signals-vc120-mt-1_59.lib libboost_system-vc120-mt-1_59.lib libboost_test_exec_monitor-vc120-mt-1_59.lib libboost_thread-vc120-mt-1_59.lib libboost_timer-vc120-mt-1_59.lib libboost_unit_test_framework-vc120-mt-1_59.lib libboost_wave-vc120-mt-1_59.lib libboost_wserialization-vc120-mt-1_59.lib vtkalglib-7.0.lib vtkChartsCore-7.0.lib vtkCommonCore-7.0.lib vtkCommonColor-7.0.lib vtkCommonComputationalGeometry-7.0.lib vtkCommonDataModel-7.0.lib vtkCommonExecutionModel-7.0.lib vtkCommonMath-7.0.lib vtkCommonMisc-7.0.lib vtkCommonSystem-7.0.lib vtkCommonTransforms-7.0.lib vtkDICOMParser-7.0.lib vtkDomainsChemistry-7.0.lib vtkexoIIc-7.0.lib vtkexpat-7.0.lib vtkFiltersAMR-7.0.lib vtkFiltersCore-7.0.lib vtkFiltersExtraction-7.0.lib vtkFiltersFlowPaths-7.0.lib vtkFiltersGeneral-7.0.lib vtkFiltersGeneric-7.0.lib vtkFiltersGeometry-7.0.lib vtkFiltersHybrid-7.0.lib vtkFiltersHyperTree-7.0.lib vtkFiltersImaging-7.0.lib vtkFiltersModeling-7.0.lib vtkFiltersParallel-7.0.lib vtkFiltersParallelImaging-7.0.lib vtkFiltersProgrammable-7.0.lib vtkFiltersSelection-7.0.lib vtkFiltersSMP-7.0.lib vtkFiltersSources-7.0.lib vtkFiltersStatistics-7.0.lib vtkFiltersTexture-7.0.lib vtkFiltersVerdict-7.0.lib vtkfreetype-7.0.lib vtkGeovisCore-7.0.lib vtkhdf5-7.0.lib vtkhdf5_hl-7.0.lib vtkImagingColor-7.0.lib vtkImagingCore-7.0.lib vtkImagingFourier-7.0.lib vtkImagingGeneral-7.0.lib vtkImagingHybrid-7.0.lib vtkImagingMath-7.0.lib vtkImagingMorphological-7.0.lib vtkImagingSources-7.0.lib vtkImagingStatistics-7.0.lib vtkImagingStencil-7.0.lib vtkInfovisCore-7.0.lib vtkInfovisLayout-7.0.lib vtkInteractionImage-7.0.lib vtkInteractionStyle-7.0.lib vtkInteractionWidgets-7.0.lib vtkIOAMR-7.0.lib vtkIOCore-7.0.lib vtkIOEnSight-7.0.lib vtkIOExodus-7.0.lib vtkIOExport-7.0.lib vtkIOGeometry-7.0.lib vtkIOImage-7.0.lib vtkIOImport-7.0.lib vtkIOInfovis-7.0.lib vtkIOLegacy-7.0.lib vtkIOLSDyna-7.0.lib vtkIOMINC-7.0.lib vtkIOMovie-7.0.lib vtkIONetCDF-7.0.lib vtkIOParallel-7.0.lib vtkIOParallelXML-7.0.lib vtkIOPLY-7.0.lib vtkIOSQL-7.0.lib vtkIOVideo-7.0.lib vtkIOXML-7.0.lib vtkIOXMLParser-7.0.lib vtkjpeg-7.0.lib vtkjsoncpp-7.0.lib vtklibxml2-7.0.lib vtkmetaio-7.0.lib vtkNetCDF-7.0.lib vtkNetCDF_cxx-7.0.lib vtkoggtheora-7.0.lib vtkParallelCore-7.0.lib vtkpng-7.0.lib vtkproj4-7.0.lib vtkRenderingAnnotation-7.0.lib vtkRenderingContext2D-7.0.lib vtkRenderingContextOpenGL2-7.0.lib vtkRenderingCore-7.0.lib vtkRenderingFreeType-7.0.lib vtkRenderingImage-7.0.lib vtkRenderingLabel-7.0.lib vtkRenderingLOD-7.0.lib vtkRenderingOpenGL2-7.0.lib vtkRenderingVolume-7.0.lib vtkRenderingVolumeOpenGL2-7.0.lib vtksqlite-7.0.lib vtksys-7.0.lib vtktiff-7.0.lib vtkverdict-7.0.lib vtkViewsContext2D-7.0.lib vtkViewsCore-7.0.lib vtkViewsInfovis-7.0.lib vtkzlib-7.0.lib vtkGUISupportQt-7.0.lib vtkRenderingQt-7.0.lib vtkViewsQt-7.0.lib flann_cpp_s.lib qhullstatic.lib OpenNI2.lib
編寫測(cè)試代碼,新建一個(gè)c++的win32控制臺(tái)程序,更改代碼如下:
#include "stdafx.h" #include <pcl/visualization/cloud_viewer.h> #include <iostream> #include <pcl/io/io.h> #include <pcl/io/pcd_io.h> int user_data; void viewerOneOff(pcl::visualization::PCLVisualizer& viewer) { viewer.setBackgroundColor(1.0, 0.5, 1.0); pcl::PointXYZ o; o.x = 1.0; o.y = 0; o.z = 0; viewer.addSphere(o, 0.25, "sphere", 0); std::cout << "i only run once" << std::endl; } void viewerPsycho(pcl::visualization::PCLVisualizer& viewer) { static unsigned count = 0; std::stringstream ss; ss << "Once per viewer loop: " << count++; viewer.removeShape("text", 0); viewer.addText(ss.str(), 200, 300, "text", 0); //FIXME: possible race condition here: user_data++; } int _tmain(int argc, _TCHAR* argv[]) { pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>); pcl::io::loadPCDFile("example.pcd的位置", *cloud); pcl::visualization::CloudViewer viewer("Cloud Viewer"); //blocks until the cloud is actually rendered viewer.showCloud(cloud); //use the following functions to get access to the underlying more advanced/powerful //PCLVisualizer //This will only get called once viewer.runOnVisualizationThreadOnce(viewerOneOff); //This will get called once per visualization iteration viewer.runOnVisualizationThread(viewerPsycho); while (!viewer.wasStopped()) { //you can also do cool processing here //FIXME: Note that this is running in a separate thread from viewerPsycho //and you should guard against race conditions yourself... user_data++; } return 0; }
這時(shí)候運(yùn)行一個(gè)測(cè)試程序很有可能會(huì)拋出error c4996錯(cuò)誤,只需在項(xiàng)目-屬性-C/C++-預(yù)處理器-預(yù)處理器定義中添加_SCL_SECURE_NO_WARNINGS就可以。
完成以上設(shè)置后別忘了保存屬性表,右擊屬性表保存即可。經(jīng)過以上步驟,運(yùn)氣好的話,PCL庫(kù)就可以用了,運(yùn)氣不好只能出啥問題找度娘了。
2.Vs2013與Qt協(xié)同
在工具-拓展和更新-聯(lián)機(jī)中搜索Qt可以找到Qt visual studio Tools,點(diǎn)擊下載,然后安裝即可。
安裝完畢之后在界面菜單欄上會(huì)多一個(gè)Qt VS Tools菜單,點(diǎn)擊Qt Options在Qt version中添加一項(xiàng)名稱隨意,路徑設(shè)為Qt的安裝目錄下相應(yīng)目錄,即指定了Qt版本,這時(shí)候可以使用Qt了。
測(cè)試一下,現(xiàn)在在文件-新建-項(xiàng)目向?qū)е幸呀?jīng)有Qt的內(nèi)容,可以選擇Qt GUI Application,就可以開發(fā)帶有GUI界面的Qt程序。
現(xiàn)在可以在VS中寫代碼,雙擊.ui文件可打開Qt Designer設(shè)計(jì)界面。
3.編譯vtk
參考http://chabaoo.cn/article/256422.htm。原地址講解會(huì)更詳細(xì)。
使用CMAKE配置VTK for Qt的編譯環(huán)境,cmake版本為3.11.3,下載地址為https://cmake.org/download/。VTK使用版本為8.1.1,下載地址為https://www.vtk.org/download/。
下載VTK-8.1.1.zip和VTKData-8.1.1.zip于同一目錄,解壓到當(dāng)前目錄,二者會(huì)合并成一個(gè)文件夾,即編譯源碼所在目錄。
打開cmake,選擇源碼目錄和構(gòu)建目錄(構(gòu)建目錄自己建一個(gè)),點(diǎn)擊configure。
選擇visual studio 12 2013 win 32(對(duì)應(yīng)版本的編譯器,不然在Qt中沒法使用)。
選擇BUILD_EXAMPLES,BUUILD_SHARED_LIBS,BUILD_TESTING。
CMAKE_INSTALL_PREFIX選擇VTK的安裝目錄。
選擇VTK_Group_Qt。點(diǎn)擊configure。
這里一般都會(huì)自動(dòng)設(shè)置好。Qt5_DIR選擇路徑為F:/Qt/5.9.4/msvc2015_64/lib/cmake/Qt5。點(diǎn)擊configure,configure done后點(diǎn)擊generate。
Generate done后點(diǎn)擊Open Project即可在VS2015中打開項(xiàng)目。選擇ALL_BUILD右鍵生成,生成完畢后改為release再生成一次release版本。這個(gè)過程會(huì)比較長(zhǎng)。
至此編譯完成,將build/bin/release下的QVTKWidget.dll復(fù)制到Qt安裝目錄的plugins/designer下,這樣打開Qt Designer就可以看到工具箱里有QVTKWidget控件了(在Qt Creator中是看不到的,在Qt Creator中使用QVTKWidget可以使用Widget代替,然后提升為QVTKWidget)。
4.在vs2013下使用vtk,Qt顯示點(diǎn)云
目前無法使用QVTKWidget,在VS2015中可以使用Qt Designer拖動(dòng)QVTKWidget設(shè)計(jì)界面,但是運(yùn)行時(shí)會(huì)出現(xiàn)錯(cuò)誤,debug模式下調(diào)試出現(xiàn)error LNK2019: 無法解析的外部符號(hào)錯(cuò)誤,看起來貌似是加載dll文件時(shí)無法識(shí)別QVTKWidget中的函數(shù);release模式下則報(bào)錯(cuò)fatal error C1083: 無法打開包括文件: “QVTKWidget.h,看起來是不能找到頭文件,即使是在項(xiàng)目屬性的VC++目錄的包含目錄中添加相應(yīng)包含目錄也不成,添加包含目錄后debug與release模式下均顯示error LNK2019。
而Qt下也不可使用QVTKWidget,Qt Creator中工具箱中沒有QVTKWidget,雖可通過提升的方式使用QVTKWidget,但是運(yùn)行的時(shí)候同樣遇到問題。debug與release模式下都出現(xiàn)LNK 2019無法解析的外部符號(hào)問題,看起來貌似與visual studio中的報(bào)錯(cuò)是一樣的。
到此這篇關(guān)于Qt 5.9使用VTK顯示點(diǎn)云的文章就介紹到這了,更多相關(guān)Qt 5.9 VTK顯示點(diǎn)云內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
OpenCV中findContours函數(shù)參數(shù)詳解
Opencv中通過使用findContours函數(shù),簡(jiǎn)單幾個(gè)的步驟就可以檢測(cè)出物體的輪廓,很方便。本文將和大家一起探討一下findContours方法中各參數(shù)的含義及用法,感興趣的可以了解一下2022-08-08詳解vs2022創(chuàng)建及調(diào)用.lib的方法
這篇文章主要介紹了vs2022創(chuàng)建及調(diào)用.lib的方法,調(diào)用Lib的原則就是可以讓編譯器找到頭文件和庫(kù)文件的目錄,并正確引入,本文給大家詳細(xì)講解需要的朋友可以參考下2022-11-11C語言中動(dòng)態(tài)內(nèi)存管理圖文詳解
在編寫程序時(shí),通常并不知道需要處理的數(shù)據(jù)量,或者難以評(píng)估所需處理數(shù)據(jù)量的變動(dòng)程度,下面這篇文章主要給大家介紹了關(guān)于C語言中動(dòng)態(tài)內(nèi)存管理的相關(guān)資料,需要的朋友可以參考下2022-06-06C++通過共享內(nèi)存ShellCode實(shí)現(xiàn)跨進(jìn)程傳輸
在計(jì)算機(jī)安全領(lǐng)域,ShellCode是一段用于利用系統(tǒng)漏洞或執(zhí)行特定任務(wù)的機(jī)器碼,本文主要為大家介紹了C++如何通過共享內(nèi)存ShellCode實(shí)現(xiàn)跨進(jìn)程傳輸,需要的可以參考下2023-12-12