ASE Home Page Products Download Purchase Support About ASE
ChartDirector Support
Forum HomeForum Home   SearchSearch

Message ListMessage List     Post MessagePost Message

  Crash in Surface Plot
Posted by Ralf Wirtz on Feb-08-2017 18:47
Hi Peter,

As you maybe knows, I do have two developer licenses for my program SimplexNumerica and Simplexety from you...

If a user puts x/y/z data in that do not match your surface interpolation, then a crash happens in

Memblock makeChart(int format) // format = 4 (bmp)

try/catch does not catch it. The app must crash!

What can we do?

Regards,
Ralf

  Re: Crash in Surface Plot
Posted by Ralf Wirtz on Feb-08-2017 19:02
Hi Peter,

Just have seen similar issues:

http://www.chartdir.com/forum/download_thread.php?bn=chartdir_support&thread=1263971562

and

http://www.chartdir.com/forum/download_thread.php?bn=chartdir_support&pattern=crash+makeChart&thread=1319541067

in older CD versions. But I use the latest CD V6!

In my case, it crashed only when you have set c->setInterpolation(..)

I will follow the advices in your answers from above messages...

Regards,
Ralf

  Re: Crash in Surface Plot
Posted by Peter Kwan on Feb-09-2017 05:22
Hi Ralf,

We know of two bugs in ChartDirector that can cause the surface chart to crash. They are mainly related to creating a chart with no valid or plottable data points.


(1) If a chart has no data, it can crash. This bug is introduced in ChartDirector 6 and does not exist in earlier versions of ChartDirector. This issue has already been fixed if you are using a ChartDirector DLL released after Jul 2016. If your ChartDirector DLL is before that date, please download the latest release from our web site once more.


(2) If all the data points are NoValue points, the surface chart may also crash.


To address the above problems, you would need to ensure the chart have at least one data point within the plot region.

I am not sure if you issue you encountered is the same above. If it is different, is it possible to provide an example to help us reproduce the problem?

Regards
Peter Kwan

  Re: Crash in Surface Plot
Posted by Ralf Wirtz on Feb-09-2017 17:09
Hi Peter,

Thank you very much for your fast response...

Unfortunately, the users that have reported issues like that do not provide their data to me. But certainly, they do have data in as they have told (and not NoValues).

I can only reproduce a similar crash with arbitrary x/y pairs, all with the same z-values. Then your interpolation (switch it on/off to see) is the reason for the crash.

In SimplexNumerica, I will react to this by checking that and then switching to your 3D Scatter Plot, instead.

By the way: App is a MFC one.

Regards,
Ralf

  Re: Crash in Surface Plot
Posted by Peter Kwan on Feb-10-2017 00:31
Hi Ralf,

If you can somehow capture one set of data that can reproduce the problem, that would certainly help us to trouble-shoot the issue.

In any case, please make sure you are using the latest ChartDirector DLL

Are your application 32-bit or 64-bit? I can ask our developers to create an updated DLL and then you can try to see if it can solve the problem.

Regards
Peter Kwan

  Re: Crash in Surface Plot
Posted by Peter Kwan on Feb-10-2017 00:51
Hi Ralf,

If you can somehow capture one set of data that can reproduce the problem, that would certainly help us to trouble-shoot the issue.

In any case, please make sure you are using the latest ChartDirector DLL.

The issue we know of is in fact due to interpolation. So it should not occur in 3D scatter chart.

Is your application 32-bit or 64-bit? We can compile a DLL that fixes the problem we know of to see if it can also address in your case.

Regards
Peter Kwan

  Re: Crash in Surface Plot
Posted by Ralf Wirtz on Feb-10-2017 15:56
Hi Peter,

My C++, MFC, Windows 10, compiled with VS2015, application SimplexNumerica can either be 32-bit or 64-bit? That depends what the user have for an OS.

Please have a look to:

www.SimplexNumerica.com

I will download your latest DLL. I did not recognize that CD V6 will be updated without a version no. to set higher.

Maybe you can block the crash with a try/catch around yours and return an error value in the makeChart(..) function...

like

bool bError = makeChart(..);

Regards,
Ralf