Почему код Delphi пашет, а аналог. C# нет (MS Office)
От: Yozh_Programmer  
Дата: 18.09.04 22:24
Оценка:
Создаю проект на С# Windows Application.
Добавляю Reference на Word указывая путь \Program Files\Microsoft Office\Office11\MSWORD.OLB
и на компоненты Graph.exe, указывая путь \Program Files\Microsoft Office\Office11\Graph.exe
(для MS Office 2003, для MS Office XP \Program Files\Microsoft Office\Office10\MSWORD.OLB(Graph.exe))

Где-то в начале


using System.Reflection;


Далее:


private void button1_Click(object sender, System.EventArgs e)
{
    object _Missing = Missing.Value;
    Word._Application App = (new Word.ApplicationClass()).Application;
    Word.Document Doc = App.Documents.Add(ref _Missing, ref _Missing, ref _Missing, ref _Missing);
    object ClassStrID = "MSGraph.Chart";
    Graph.Chart Chart = (Graph.Chart)Doc.InlineShapes.AddOLEObject(
        ref ClassStrID, ref _Missing, ref _Missing, ref _Missing, ref _Missing, ref _Missing, ref _Missing, ref _Missing).OLEFormat.Object;
    Chart.Application.DataSheet.Cells.Clear();
}


В последней строке вызывает exception: "Old format or invalid type library".

Аналогичный код на Delphi7 пашет, кроме того с макросом на VBA все также нормально работает.

Юзаю Windows XP SP2, MS VS 2003, MS Office 2003. Проверял на Office XP, и без XPSP2.

Да, и проверял на другой машине на которой стоит XP (не помню правда стоял ли SP1), с MS Office XP и MS VS 2003: тоже все пашет.

Почему такое может происходить, может кто-нибудь кстати сможет на своей машине проверить?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.