The built-in argument cache (generated by the XLL+ AppWizard) is no longer required and should be removed.
In AvgOpt.h, remove the two lines shaded below.
CopyC++class CAvgOptApp : public CXllApp { public: CAvgOptApp(); // Names public: static LPCSTR m_pszDefName; // Data CXlOperCache m_cache; CString m_strCacheFile; // Menu CXlMenu m_menu; ... };
In AvgOpt.cpp, remove the lines shaded below.
CopyC++BOOL CAvgOptApp::OnXllOpenEx()
{
// Calculate the full path of the cache data file.
// This is the same as the add-in, with the extension "dat".
m_strCacheFile = CXllApp::GetXllName();
m_strCacheFile = m_strCacheFile.Left(m_strCacheFile.GetLength() - 3) + "dat";
// Restore cache, ignoring failure
m_cache.Restore(m_strCacheFile);
// Set up menu
m_menu.SetTexts("&AvgOpt");
m_menu.AddItem("&Clear cache", "AvgOptClearCache");
m_menu.Create();
return TRUE;
}
void CAvgOptApp::OnXllClose()
{
// Save cache
m_cache.Save(m_strCacheFile);
// Delete menu
m_menu.Destroy();
}
Use the XLL+ Function Wizard to switch off the argument cache for the AvgOptValue function in AvgOpt.cpp:
This will remove all of the generated code within the add-in function that supports the argument cache.