Jump to content
Software FX Community

A Question about INVALIDPROPERTYARRAYINDEX


binqing

Recommended Posts

Hi, Frank

When I run the application with a three-series chart under VS 2003 IDE, everything is fine, including the ChartFX. (I posted the code of some modules in the following site  http://community.softwarefx.com/forums/t/7899.aspx)

But when I deploy this and install it in either my own machine or another testing machine, and when I try to open the chart, I got the following message. And I did check the deploy package for several times and even re-register the ChartFX related module on the computer where the application is installed, but still no good.

 "An unhandled exception has occurred in you application. If you click Contiune, the application will ignore this error and attempt to contiune. If you click Quit, the application will be shut down immediately"

"Exceptoion form HRESULT: 0x800A017D (CTL_EINVALIDARRAYINDEX)."

After I click the Details button I see the detailed error message like the following.

*********** Exception Text ***********************

System.Runtime.InteropServices.COMException (0x800A017D): Exception from HRESULT: 0X800A017D(CTL_E_INVALIDPROPERTYARRAYINDEX )

at ChartfxLib.ICfxSeriesEnum.get_Item(Int16 index)

at PitScour102.frmGraphics.frmGraphics_Load(Object sender, EvenetArgs e)

at System.Windows.Forms.Form.OnLoad(EventArgs e)

................

I opened the Object Browser window from the VS IDE to browse the interop.chartfxlib object, and found out that under ICfxSeriesEnum interface, there are only two properties, "Count"  and "this[short]", but no get_Item method. Is this method defined somewhere else? Just curiorious to know, or probably that is why I did not get it right.

This problem has stuck there for quite a while. It would be so much appreciated if you give some hints for this. Thanks.

 

Link to comment
Share on other sites

Hi, Frank

Here are the new findings when I tried to re-register these two ChartFX related DLLs.

In the command line I typed in the following two lines

C:\Program Files\Maricopa FCD\Pit Scour 102>regsvr32 axInterop.charfxLib.dll

C:\Program Files\Maricopa FCD\Pit Scour 102>regsvr32 Interop.charfxLib.dll

where C:\Program Files\Maricopa FCD\Pit Scour 102 is the directory the application is installed, and two ChartFX related DLLs are residing.

And the following are the pop-up message I got.

axInterop.chartfxLib.dll was loaded, but the DllRegisterServer entry point was not found. This file can not be registered.

Interop.chartfxLib.dll was loaded, but the DllRegisterServer entry point was not found. This file can not be registered.

Does this imply that these two DLLs have not got registered at all during the installation? I have been browsing the SoftwareFX site for a while. I remember it is mentioned in somewhere, that there is a license issue involved during the deployment and installation. Does that apply to our case? Please give a hint of how to fix. Thanks

Link to comment
Share on other sites

You do not need to register the Interop libraries, only the COM ChartFX libraries.

About the bug, please try setting the data using chart.ValueEx and chart.YValueEx to pass the data between OpenData/CloseData. We delay most of the extra allocations up to the CloseData call, so accessing per-series data should only be done after CloseData.

Also note that we have .NET assemblies for both VS 2003 and VS 2005. Depending on the amount of ChartFX code you already have upgrading might be something you want to think about. There are many new features, you do not need to register anything (DLL Hell), the API has been revamped etc.

Regards,

JuanC

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...