|
Программирование >> Перегруженные имена функций и идентификаторы
Error : %08lX\n ErrorMessage: %s\n Description : %s\n Source : %s\n , er.Error(), (LPCTSTR) bstr t(er.ErrorMessage()), (LPCTSTR) bstr t(er.Description()), (LPCTSTR) bstr t(er.Source())); CharToOem(buf,buf); только для консольных приложений printf(buf); ::CoUninitialize(); MS Excel console.cpp : Defines the entry point for the console application. #include stdafx.h #include <stdio.h> #include Office.h void main() ::CoInitialize(NULL); try { using namespace Excel; ApplicationPtr excel( Excel.Application ); excel->Visible[0] = true; создаём новую книгу WorkbookPtr book = excel->Workbooks->Add(); получаем первый лист (в VBA нумерация с единицы) WorksheetPtr sheet = book->Worksheets->Item[1L]; Аналогичная конструкция на VBA выглядит так: book.Worksheets[1] В библиотеке типов Item объявляется как метод или свойство по умолчанию (id[0]), поэтому в VB его можно опускать. На C++ такое, естественно, не пройдёт. заполняем ячейки sheet->Range[ B2 ]->FormulaR1C1 = Строка 1 ; sheet->Range[ C2 ]->FormulaR1C1 = 12345L; sheet->Range[ B3 ]->FormulaR1C1 = Строка 2 ; sheet->Range[ C3 ]->FormulaR1C1 = 54321L; заполняем и активизируем итоговую строку sheet->Range[ B4 ]->FormulaR1C1 = Итого: ; sheet->Range[ C4 ]->FormulaR1C1 = =SUM(R[-2]C:R[-1]C) ; sheet->Range[ C4 ]->Activate(); делаем красиво sheet->Range[ A4:D4 ]->Font->ColorIndex = 27L; sheet->Range[ A4:D4 ]->Interior->ColorIndex = 5L; Постфикс L говорит, что константа является числом типа long. Вы всегда должны приводить числа к типу long или short при преобразовании их к variant t, т.к. преобразование типа int к variant t не реализовано. Это вызвано не желанием разработчиков компилятора усложнить нам жизнь, а спецификой самого типа int. ADO DB } catch ( com error& er) { char buf[1024]; sprintf(buf, com error:\n Error : %08lX\n ErrorMessage: %s\n Description : %s\n Source : %s\n , er.Error(), (LPCTSTR) bstr t(er.ErrorMessage()), (LPCTSSTR) bstr t(er.Description()), (LPCTSTR) bstr t(er.Source())); CharToOem(buf,buf); только для консольных приложений printf(buf); ::CoUninitialize(); console.cpp : Defines the entry point for the console application. #include stdafx.h #include <stdio.h> #import C:\Program Files\Common Files\System\ado\msado20.tlb \ rename( EOF , ADOEOF ) rename( BOF , ADOBOF ) оператор rename необходим, т.к. EOF определён как макрос в файле stdio.h using namespace ADODB; void main() ::CoInitialize(NULL); try { открываем соединение с БД ConnectionPtr con( ADODB.Connection ); con->Open(L Provider=Microsoft.Jet.OLEDB.3.51; L Data Source=Elections.mdb , , ,0); открываем таблицу RecordsetPtr rset( ADODB.Recordset ); rset->Open(L ElectTbl ,(IDispatch*)con, adOpenDynamic,adLockOptimistic,adCmdTable); FieldsPtr flds = rset->Fields; добавляем rset->AddNew(); flds->Item[L Фамилия ] ->Value = L Пупкин ; flds->Item[L Имя ] ->Value = L Василий ; flds->Item[L Отчество ] ->Value = L Карлович ; flds->Item[L Голосовал ли ] ->Value = false; flds->Item[L За кого проголосовал ] ->Value = L Против всех ; rset->Update(); подменяем flds->Item[L Голосовал ли ] ->Value = true; flds->Item[L За кого проголосовал ] ->Value = L За наших ; rset->Update();
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |