Вызываю MathCAD из своей программы.
Вызов из Дельфи проходит без проблем:
OleInitialize( nil );
OleContainer1.CreateObjectFromFile( ExtractFilePath(Application.ExeName)+'\tasks\test1.mcd', False );
OleContainer1.AutoActivate := aaManual;
OleContainer1.DoVerb(ovShow);
MCadObject := OleContainer1.OleObject;
MCadObject.Recalculate;
OleUninitialize;
Вызов из .NET (Framework 1.1) постоянно приводит к ошибкам:
Объект MathCad 2001:
Mathcad.MathcadApplication app = new Mathcad.MathcadApplication();
try
{
Object filename = @"C:\Tasks\test1.mcd";
Object password = "";
app.Documents.Open( filename.ToString(), Type.Missing );
>>Exception<<
{"Object reference not set to an instance of an object." }
app.Documents.Item(1).Recalculate();
}
catch
{
app.Quit();
}
Объект MathCad 14:
Mathcad.Application app = new Mathcad.Application();
Mathcad.Worksheet ws = new Mathcad.Worksheet();
ws = app.Worksheets.Open( @"C:\Tasks\task1.xmcd" );
>>Exception<<
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in TestGenApp.exe
Additional information: Неверная попытка доступа к адресу памяти.
ws.Recalculate();
ws.Close( Mathcad.MCSaveOption.mcDiscardChanges );
app.Quit( Mathcad.MCSaveOption.mcDiscardChanges );
Ошибка в обоих случаях на одном и том же месте при открытии файла.
Выскажите предположение в чем дело, плиз!!!
Заранее спасибо