Вызов MathCAD из C#
От: alexx14  
Дата: 06.11.08 00:38
Оценка:
Вызываю 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 );


Ошибка в обоих случаях на одном и том же месте при открытии файла.
Выскажите предположение в чем дело, плиз!!!
Заранее спасибо
c# .net mathcad com ole
Re: Вызов MathCAD из C#
От: alexx14  
Дата: 14.01.09 12:49
Оценка:
Проблема вызова маткада успешно рещена.

Если кого то интересует или нужен код — пишите, подскажу.
c# mathcad com object asp.net
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.