Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C/C++ Из StringGrid в Word по шаблону https://www.cyberforum.ru/ c-cpp/ thread2045380.html
Есть шаблон Word с закладками. Вывожу в него данные из StringGrida при помощи кода: void __fastcall TForm5::Button2Click(TObject *Sender) { bool DontOverwrite = true; Variant v2,v1,... Проблему решил написав макрос VBA и запуская его из под с++ Sub MacOfSet() Application.ScreenUpdating = False Dim Tbl As Table, cel As Cell, i As Long, n As Long, fEmpty As Boolean With...
C/C++ Свойства объекта ActiveX Друзья, как сделать чтобы в свойствах можно было изменить форму объекта? Создал кнопку овальной формы, по щелчку ЛКМ меняется ее цвет. Создал дополнительную страницу в свойства, добавил чекбокс,... https://www.cyberforum.ru/ c-cpp/ thread2079565.html
C/C++ Мутная тема с известным устройством с неизвестными параметрами по COM порту https://www.cyberforum.ru/ c-cpp/ thread2014599.html
Мутная тема с устройством по COM порту У меня есть устройство которое не как не хочет со мной общаться, ненавесть на всю жизнь кажись) это GSM модуль который подключается к СОМ порту. Он мне шлет... Он мне шлет всякий мусор при включении 99%, что неправильно выбрана скорость порта и/или конфигурация стартовых/стоповых битов. Может кто то подсказать как определить на каких параметрах работает...
C/C++ Чтение бита четности Здравствуйте. У меня есть вопрос: Как считать бит четности через с++? Написана программа которая будет общаться с устройством через компорт, передача и прием, и по ТЗ нужно использовать 9й бит для... Всегда думал что прикладному по не нужно читать этот бит - его читает и при желании программиста контролирует системное по https://www.cyberforum.ru/ c-cpp/ thread2063114.html
C/C++ Как работать с HRESULT? https://www.cyberforum.ru/ c-cpp/ thread2010074.html
Сначала в книге было написано коды возврата E_NOINTERFACE,S_OK и т.п. Теперь более сложный метод - MAKE_HRESULT(sev,fac,code). Как раскрыть второе и во что тогда раскрывается первое в таком случае?... В большинстве случаев тебе нужно использовать стандартные коды ошибок HRESULT - S_OK, E_INVALIDARG, E_OUTOFMEMORY, E_NOINTERFACE и т.д. Это то, что ожидает клиентский код. А MAKE_HRESULT - это для...
C/C++ Изучение COM, C++ ATL
Добрый день. Ищу самый простой материал по изучению технологии COM. Нужно создать COM полигон и вывести его в MFC окно. Везде очень старый или практически не понятный материал. Хотелось бы на... Leningradeс, если объект 32 то и сервер должен быть 32. То же самое про 64 Я так и понял, спасибо. а на счет создания графических объектов не поможете? нужен класс poligon например, и например 3...
C/C++ Выделенные ячейки Доброго времени суток Подскажите, пожалуйста, как получить номера строки и столбца: - верхней левой ячейки выделенного диапазона - число строк и столбцов выделенного диапазона - активной ячейки,... https://www.cyberforum.ru/ c-cpp/ thread2144897.html C/C++ Как вызвать несколько методов у класса сразу? https://www.cyberforum.ru/ c-cpp/ thread2173894.html
Здравствуйте, нужна помощь. У меня есть класс: #pragma once using namespace System; using namespace System::Windows::Forms; ref class MyClass { public: String^ getErrMsg() Dea_Winchester, для этого надо что бы метод возвращал ссылку на объект
C/C++ MSWord - графический фильтр для CGM-файлов https://www.cyberforum.ru/ c-cpp/ thread2030115.html
Как можно определить с помощью OLE установлен ли в Office компонент для работы с графическими файлами (в том числе и метафайлами). В программе используется вставка в Word довольно редкого для Windows... dub001, может просто поймать исключение и вывести сообщение?
C/C++ Взятие строки из открытого файла в MS Word Основная проблема вопроса заключается в том, что довольно много есть гайдов в интернете и на русском и на инглише, о работе с API ворда через OLE и COM объекты, однако я не встречал еще ни одного... SSDNet, начать стоит с того что взять и реализовать это на VBA а потом переписать на нужный язык https://www.cyberforum.ru/ c-cpp/ thread2113359.html
C/C++ Работа с функцией ReadFile
Доброго времени. При работе с COM-портом в синхронном режиме возникают проблемы с выходом из функции ReadFile(). В примере кода идет опрос порта в бесконечном цикле. Вопрос: какими способами из него... Манипуляции с условиями, связанными с iSize не дают толку. Почему? Вроде логично: while (!kbhit()){ ReadFile(hSerial, &sReceivedChar, 1, &iSize, 0); // получаем 1 байт if...
C/C++ ActiveX и C++ https://www.cyberforum.ru/ c-cpp/ thread2150557.html
Какой макрос в ActiveX и C++ используется для вывода сообщения ? Andrey876, вывода куда? В головной мозг? В Кремль? Как вариант подойдёт: - std::cout << "OMG!!!"; для вывода в out - WinAPI MessageBox для показа сообщения в диалоговом окошке
 Аватар для Leningradeс
14 / 14 / 3
Регистрация: 03.03.2011
Сообщений: 435
0

Изучение COM, C++ ATL 2 - C/C++ - Ответ 12108521

11.02.2018, 16:48. Показов 2629. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

Нужно написать alt com-server и многооконный mfc-client.
По нажатию на кнопку в client открыть новое окно, передать на server "что-то" (xy?), нарисовать круг на server, вывести в client круг.

Мне нужен самый простой пример как это сделать, дальше разберусь...

Вот что я делаю сейчас...

Событие:
C++
1
2
3
4
5
6
7
8
9
void CChildView::OnLButtonDown(UINT nFlags, CPoint point)
{
    // TODO: добавьте свой код обработчика сообщений или вызов стандартного
 
    IMyCirclePtr pMyCircle(__uuidof(IMyCircle));
    pMyCircle->Add(point.x, point.y);
 
    CWnd::OnLButtonDown(nFlags, point);
}
Метод:
C++
1
2
3
4
5
6
7
STDMETHODIMP CMyCircle::Add(LONG x, LONG y)
{
    // TODO: добавьте код реализации
    MyPoint.x = x;
    MyPoint.y = y;
    return S_OK;
}
Рисуем:
C++
1
2
3
4
5
6
7
8
9
10
HRESULT OnDraw(ATL_DRAWINFO& di)
    {
        RECT& rc = *(RECT*)di.prcBounds;
        HDC hdc = di.hdcDraw;
 
        CalcPoints(rc);
        Polygon(hdc, &m_arrPoint[0], m_nSides);
 
        return S_OK;
    }
Считаем:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void CMyCircle::CalcPoints(const RECT& rc)
{
    const double pi = 3.14159265358979;
    // POINT ptCenter;
    double dblRadiusx = (rc.right - rc.left) / 2;
    double dblRadiusy = (rc.bottom - rc.top) / 2;
    double dblAngle = 3 * pi / 2;          // начинаем сверху
    double dblDiff = 2 * pi / m_nSides;   // угол на каждую сторону
    MyPoint.x = (rc.left + rc.right) / 2;
    MyPoint.y = (rc.top + rc.bottom) / 2;
 
    // вычисляем точки для каждой стороны
    for (int i = 0; i < m_nSides; i++)
    {
        m_arrPoint[i].x = (long)(dblRadiusx * cos(dblAngle) + MyPoint.x + 0.5);
        m_arrPoint[i].y = (long)(dblRadiusy * sin(dblAngle) + MyPoint.y + 0.5);
        dblAngle += dblDiff;
    }
}
И это не работает, pMyCircle пишет что "__vfptr <Чтение памяти невозможно> void * *"

Лог:
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxtoolbarimages.cpp(970) : atlTraceGeneral - Can't load bitmap: WINDOWS7_IDB_RIBBON_BTN_PANEL_MAIN. GetLastError() = 716
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winfrm.cpp(1628) : AppMsg - Warning: no message line prompt for ID 0x0000.
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winmdi.cpp(596) : AppMsg - Warning: no shared menu/acceltable for MDI Child window.
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winmdi.cpp(872) : AppMsg - Warning: GetWindowMenuPopup failed!
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winmdi.cpp(872) : AppMsg - Warning: GetWindowMenuPopup failed!
Вызвано исключение по адресу 0x76CA08B2 в MfcClient.exe: исключение Microsoft C++: _com_error по адресу памяти 0x003EF208.
Возникло необработанное исключение по адресу 0x76CA08B2 в MfcClient.exe: исключение Microsoft C++: _com_error по адресу памяти 0x003EF208.
Добавлено через 23 минуты
Нашел ошибку, надо было указатель на class MyCircle, а у меня на struct IMyCircle
C++
1
2
3
4
5
6
7
8
9
void CChildView::OnLButtonDown(UINT nFlags, CPoint point)
{
    // TODO: добавьте свой код обработчика сообщений или вызов стандартного
 
    IMyCirclePtr pMyCircle(__uuidof(MyCircle));
    pMyCircle->Add(point.x, point.y);
 
    CWnd::OnLButtonDown(nFlags, point);
}
Но пока что не рисует...

Добавлено через 19 часов 10 минут
Всё, я разобрался!

Вот такой метод возвращает рисунок:
C++
1
2
3
4
5
6
7
8
9
10
11
STDMETHODIMP CMySquare::Add(RECT rc, HDC hdc, LONG radius, LONG x, LONG y)
{
    // TODO: добавьте код реализации
    MyPoint.x = x;
    MyPoint.y = y;
    MyRadius = radius;
 
    OnDraw(rc, hdc);
 
    return S_OK;
}
Может что то и не правильно, но работает.

Вернуться к обсуждению:
Изучение COM, C++ ATL 2 C/C++
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.02.2018, 16:48
Готовые ответы и решения:

Изучение COM, C++ ATL
Добрый день. Ищу самый простой материал по изучению технологии COM. Нужно создать COM полигон и вывести его в MFC окно. Везде очень...

поделитесь ATL
Доброго времени суток! Может у кого завалялась библиотека atl, будьте добры, поделитесь. на форум или файлообменик не принципиально. А...

Литература по ATL/WTL.
Здравствуйте, уважаемые форумчане! Не могли бы вы посоветовать стоящую литературу по библиотекам ATL/WTL, желательно не метровой толщины.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.02.2018, 16:48
Помогаю со студенческими работами здесь

На зачете спросили по ATL COM
С помощью мастера ATL COM в Visual Studio на языке C++ создаем проект LB3_AutoSvr в качестве заготовки проекта для формирования...

Использование созданных ATL контроллеров
Я извиняюсь, может кто помочь, потому что первый раз самому тяжело разобраться, литературы мало. Изучаю COM, ATL ..., и вот по этой статье...

Как работать с ATL OLE DB Consumer wizard?
Здраствуйте! Я на форуме первый раз. Я пишу простенькую програму на MFC доступ к базе данных должен быть OLE DB. целую неделю борюсь с...

Ошибка COM (Excel) без использования MFC, ATL
Доброго времени суток! Я занимаюсь разработкой приложения, которое выгружает определенные данные из БД в файл XLS (уже отформатирован,...

ATL
Здравствуйте, не подскажете если ли туториалы на русском по этой библиотеке? Нужно написать службу

0
Новые блоги и статьи
Система безопасности в Laravel: возможности и примеры
Wired 18.02.2025
Каждый день появляются новые виды атак и уязвимостей, которые могут поставить под угрозу конфиденциальные данные пользователей и функционирование всей системы. В этом контексте выбор надежного. . .
Давайте сравним Django и Laravel
Wired 18.02.2025
Django и Laravel - два мощных инструмента, которые часто сравнивают между собой. Оба фреймворка предлагают разработчикам богатый набор возможностей для создания масштабируемых веб-приложений, но. . .
Laravel или React - что лучше?
Wired 18.02.2025
В разработке веб выбор правильного инструмента часто определяет успех всего проекта. Особенно интересным представляется сравнение Laravel и React - двух популярных технологий, которые часто. . .
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
Аутентификация в Laravel
Wired 18.02.2025
В современном мире веб-разработки безопасность пользовательских данных становится критически важным аспектом любого приложения. Laravel, как один из самых популярных PHP-фреймворков, предоставляет. . .
Laravel или Symfony: что лучше для старта?
Wired 18.02.2025
В веб-разработке выбор правильного фреймворка может стать определяющим фактором успеха проекта. Особенно это актуально для PHP - одного из самых распространенных языков программирования, где Laravel. . .
Что нового в Laravel 12
Wired 18.02.2025
С момента своего появления в 2011 году Laravel постоянно развивается, внедряя инновационные решения и совершенствуя существующие возможности. В начале 2025 года ожидается выход Laravel 12 - новой. . .
Роутер в Laravel: как работать с маршрутами
Wired 18.02.2025
Маршрутизация - один из основополагающих элементов любого веб-приложения на Laravel, определяющий как приложение отвечает на HTTP-запросы к различным URL-адресам. По сути, роутинг - это механизм. . .
Интеграция шаблона Bootstrap в Laravel PHP
Wired 18.02.2025
Разработка веб-приложений в современном мире требует не только надежного бэкенда, но и привлекательного, отзывчивого интерфейса. Laravel, как один из самых популярных PHP-фреймворков, отлично. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru