Цитата:
Изначально опубликовано Андре
COM wb;
COM cn
cn = new COM("Excel.Application");
cn.Visible = True;
wb = cn.Workbooks.Add();
cn.ActiveCell.Value = "1";
Вот этот код работает в Word'е, но не работает в Аксапте.
Навряд ли. Word на попытке выполнить здесь Workbooks.Add оно свалится, т.к. на момент связывания Workbooks будет не иметь определнных свойств. Лучше обращаться напрямую к объекту класса ExcelWorksheet, или Execl.Workspace
Второе, - присвоение может и не поддердживаться. Попытайтесь так -
сn.Visible(True);
Это такое же свойство как и Provider для ADODB.Connection
Цитата:
Непонятно также откуда Аксапта берет информацию о методах и свойствах СОМ сервера. В VB я подключаю соответсвующую библиотеку, в Delphi делаю импорт tlb, здесь же нет ничего подобного.
Это если вы делаете статическое связываение.
А можно ведь ничего и не импортировать. - Смысл использования COM в том, что приложение может и не знать заранее объект какого приложения, какого класса вы создаете, а определять это в момент выполнения. Так и здесь - Аксапта(Delphi-приложение, Word что угодно) обращается к библиотекам COM инетерфейса (ole), та в registry смотрит id класса имеющего нимаенование Excel.Application, находит сервер-приложение, активизирует его, опрашивает и т.д.....