Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
ВнизКод не работает в DLL и работает в EXE Найти похожие ветки
← →
Unax (2004-06-24 17:10) [0]Я создал DLL с функцией передачи данных в Excel. Эта функция нормально работает в обычном проекте, но в DLL в указанной строчке выдается ошибка EOleSysError с сообщением "CoInitialize has not been called". Подскажите с чем это может быть связано.
Вообщем код такой
var
Range,V : OleVariant;
i : integer;
ExcelApplication1: TExcelApplication;
ExcelWorkbook1: TExcelWorkbook;
ExcelWorksheet1: TExcelWorksheet;
begin
ExcelApplication1 := TExcelApplication.Create(nil);
ExcelWorkBook1 := TExcelWorkbook.Create(nil);
ExcelWorkSheet1 := TExcelWorksheet.Create(nil);
ExcelApplication1.ConnectKind := ckNewInstance;
ExcelApplication1.SheetsInNewWorkbook[LOCALE_USER_DEFAULT] := 1;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,LOCALE_USER_DEFAULT));
ExcelWorkBook1.Activate(LOCALE_USER_DEFAULT);
ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveWorkbook.ActiveSheet as ExcelWorkSheet);
ExcelApplication1.Visible[LOCALE_USER_DEFAULT] := true;
ExcelWorkSheet1.Name := "?????????";
Range := ExcelWorkSheet1.Range["A1","H1"];
V := VarArrayCreate([1,8],varVariant);
V[1] := "????????";
V[2] := "?????";
V[3] := "???????";
V[4] := "????";
V[5] := "?????";
V[6] := "??????";
V[7] := "??????";
V[8] := "??. ?????";
Range.Value := v;
ExcelWorkbook1.Disconnect;
ExcelWorksheet1.Disconnect;
ExcelApplication1.Disconnect;
ExcelApplication1.Free;
← →
Тимохов © (2004-06-24 17:17) [1]именно с тем, что написано в сообщении об ошибке.
надо вызывать указанную функцию.
← →
Тимохов © (2004-06-24 17:22) [2]я не сильно хорошо помню детали, но точно знаю одно, что для того, чтобы обращаться к com из потока нужно вызвать coinitialize. Для главногоо потока за вас это уже дельфи сделал сам, а для доп потоков надо делать самому. Как дела обстоят с dll, не помню, но допускаю, что для dll также важна эта функция. почитайте про нее в msdn
← →
Unax (2004-06-24 17:29) [3]Спасибо огромное! Заработало
Надо вызывать ф-ю CoInitializeEx
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c