Spread COM 64 Bit DLL fails beyond 1500 rows

Posted by: nishit.naik on 22 February 2023, 9:00 pm EST

    • Post Options:
    • Link

    Posted 22 February 2023, 9:00 pm EST

    I am using Spread COM version 8 DLL for building a 64 Bit application. The Spread cannot hold more than 1500 rows in 64 Bit, but works ok in 32 Bit i.e. it can hold beyond 1500 in 32 bit.

    if I use only 1 column , i am able to insert upto 10000 rows, however if I use 8-10 columns I am able to insert only 1500 rows.

    I have tried SetData, ClipIn

    **Basic code **

    m_spread.SetMaxRows(15000);
    	m_spread.InsRowRange(1, 15000);
    	for (int i = 0; i < 15000; i++)
    	{
    		CString str;
    		str.Format("Row = %ld", i);
    		m_spread.SetData(1, i + 1, str);
    		m_spread.SetData(2, i + 1, str);
    		mlistCtrl.InsertItem(i, "temp");
    		mlistCtrl.SetItemText(i, 1, str);
    		m_lastRow = i + 1;
    	}

  • Posted 12 July 2023, 3:16 am EST

    Hi Nishit,

    This is likely due to the x64 dll controls not using SmartHeap like in the x86 controls. Without SmartHeap, SpreadCOM becomes pretty memory-limited.

    http://www.microquill.com/smartheap/sh_tspec.htm

    The only way to get past this would be to obtain a SpreadCOM Source license, as well as any necessary licensing from MicroQuill. You could then integrate x64 SmartHeap into your own x64 build of SpreadCOM dll controls. Unfortunately, this is the extent of what support we can provide, as the original developers that integrated the x86 SmartHeap are not present.

    I apologize for such a late response, but I hope this helps you and other users to understand the limitation.

    Best,

    —Tye

Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels