首页 / 浏览问题 / 组件GIS / 问题详情
win10下iobjectscpp标绘出错_pFirstBlock==pHead
32EXP 2021年05月16日

使用产品 iobjectscpp 10.1.1,操作系统 win10 64 编译器 MSVC 2017 64位,IDE Qt5.9.6

问题描述:打开sample中的GettingStarted进行标绘时,出现Microsoft Visual C++ Runtime Library,

File:minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp

Line:996

Expression:_pFirstBlock==pHead.

定位到代码行:

m_pUGGraphicObject->SetGeometryShape(libID, nID, pts3D, true);//出错行

该示例在Linux下运行正常,请问在Windows下需要有什么特别注意的吗?下面为pro中的设置。

win32{
    QMAKE_CXXFLAGS=  -Zc:wchar_t -MDd
#    QMAKE_CXXFLAGS_RELEASE = -Od -MD -Zi
    QMAKE_LFLAGS_RELEASE = -DEBUG
    QMAKE_RPATHDIR += "../debug/x64"
    DESTDIR = "../debug/x64"
    QMAKE_CXXFLAGS += /bigobj

详细错误:

000002535E581442 (SuGeometryPlotd): (filename not available): OGDC::OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>::~OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000002535E5803EC)
000002535E5803EC (SuGeometryPlotd): (filename not available): OGDC::OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>::~OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000002535E576411)
000002535E576411 (SuGeometryPlotd): (filename not available): OGDC::OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>::~OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000002535E536FE8)
000002535E536FE8 (SuGeometryPlotd): (filename not available): OGDC::OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>::~OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000002535E53112B)
000002535E53112B (SuGeometryPlotd): (filename not available): OGDC::OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>::~OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>
ERROR: SymGetLineFromAddr64, GetLastError: 487 (Address: 000002535EA12D8C)
000002535EA12D8C (SuGeometryPlotd): (filename not available): OGDC::OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>::~OgdcArray<OGDC::OgdcArray<OGDC::OgdcPoint2D> * __ptr64>

我在网上搜这个情况,一般是由于编译未设置MDd选项原因,但是这里也设置了,不知道为啥。

1个回答

你这个是在编译的时候报的错误 还是运行执行的时候报的错误
4,620EXP 2021年05月17日
是在运行时出现的错误。
是启动后已经能够正常出运行界面了,但是执行标绘功能的时候报错吗?还是界面都没有出来就报的错误

是启动后正常运行。但如果调用

m_pUGGraphicObject->SetGeometryShape(libID, nID, pts3D, true);//出错行

这行就会出错,如果不调用就不会出错。

你打个断点看一下,是否里面某个参数为null了
断点调试看过了,都是有值的。你能在你那边试一下这个接口吗,我在JuSunCpp示例里调用这个接口也不行,但是创建点,线,面的接口UGGeoPoint这些都是可以的。
...