Q62627: M6101 on PG Scatter Charts with Autoscaling Off
Article: Q62627
Product(s): See article
Version(s): 6.00 6.00a
Operating System(s): MS-DOS
Keyword(s): ENDUSER | s_quickc buglist6.00 buglist6.00a | mspl13_c
Last Modified: 21-JAN-1991
If you turn autoscaling off in any Presentation Graphics scatter
chart, you will receive a run-time error M6101 -- invalid math
operation -- when the _pg_chartscatter() run-time function is called.
Microsoft has confirmed this to be a problem in C versions 6.00 and
6.00a and QuickC versions 2.50 and 2.51 (buglist2.50 and buglist2.51).
We are researching this problem and will post new information here as
it becomes available.
Sample Code
-----------
The following code is from the SCAT.C sample program, which is the
sample program found in the online help for the _pg_chartscatter and
_pg_chartscatterms routines. Note the added lines, which turn off
autoscaling. Compile the program, then link with the GRAPHICS.LIB and
PGCHART.LIB files. Running the application will duplicate the M6101
run-time error.
/* SCAT.C illustrates presentation graphics scatter chart functions
* including:
* _pg_chartscatter _pg_chartscatterms
*/
#include <conio.h>
#include <graph.h>
#include <string.h>
#include <stdlib.h>
#include <pgchart.h>
#define ITEMS 5
#define SERIES 2
float _far people[SERIES][ITEMS] = { { 235.F, 423.F, 596.F, 729.F,
963.F },
{ 285.F, 392.F, 634.F, 801.F, 895.F }
};
float _far profits[SERIES][ITEMS] = { { 0.9F, 2.3F, 5.4F, 8.0F,
9.3F },
{ 4.2F, 3.4F, 3.6F, 2.9F, 2.7F }
};
char _far *companies[SERIES] = { "Goodstuff,Inc.", "Badjunk & Co." };
void main()
{
chartenv env;
if( !_setvideomode( _MAXRESMODE ) ) /* Find a valid graphics
mode */
exit( 1 );
_pg_initchart(); /* Initialize chart system */
/* Show single-series scatter chart. */
_pg_defaultchart (&env, _PG_SCATTERCHART, _PG_POINTONLY );
strcpy( env.maintitle.title, "Goodstuff, Inc." );
strcpy( env.xaxis.axistitle.title, "Employees" );
strcpy( env.yaxis.axistitle.title, "Profitability" );
/****** Note : Turn one of these two to '0' or off, or uncomment
this section to cause problem. */
/* env.xaxis.autoscale=1; */
/* env.yaxis.autoscale=0; */
/********************************************************************/
_pg_chartscatter( &env, people[0], profits[0], ITEMS );
getch();
_clearscreen( _GCLEARSCREEN );
/* Show multiseries scatter chart. */
_pg_defaultchart (&env, _PG_SCATTERCHART, _PG_POINTONLY );
strcpy( env.xaxis.axistitle.title, "Employees" );
strcpy( env.yaxis.axistitle.title, "Profitability" );
_pg_chartscatterms( &env, (float _far *)people,
(float _far *)profits, SERIES, ITEMS, ITEMS, companies );
getch();
_setvideomode( _DEFAULTMODE );
}
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.