3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135

Создание собственных ActiveX элементов. Почему не работает???

05.03.2011, 15:11. Показов 3185. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Захотелось сделать собственный ActiveX элемент. Делал всё как сдесь сказано http://www.cyberguru.ru/progra... age49.html . Всё, кроме 6 и 7 пунктов.
Пользуюсь Microsoft Visual Studio 10.0.
Создал проект, выбрал Win32 Release, нарисовал часы с двумя стрелками.
Вставил такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void CMyClockCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
            
{
    if (!pdc)
        return;
 
    // TODO: Replace the following code with your own drawing code.
    pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
    pdc->Ellipse(rcBounds);
 
    char CurrentTime[30];
             struct tm *newtime; 
    char lTime; // Получить текущее время
    time(&lTime);
    newtime=localtime(&lTime); // Преобразовать время в строку
    strcpy(CurrentTime, asctime(newtime)); // Дополнить строку одним символом пробела
    CurrentTime[24]=' '; // Дополнить строку ограничивающи символом
             CurrentTime[25] = 0; // Вывести текущее время
    pdc->ExtTextOut(rcBounds.left,rcBounds.top, ETO_CLIPPED, rcBounds,
             CurrentTime, strlen(CurrentTime),NULL);
}
Ну и компилятор тут и говорит:

MyClockCtrl.cpp
c:\program files\microsoft visual studio 10.0\my_progects\myclock\myclock\myclock ctrl.cpp(148): error C2664: 'time' : cannot convert parameter 1 from 'char *' to 'time_t *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\program files\microsoft visual studio 10.0\my_progects\myclock\myclock\myclock ctrl.cpp(149): error C2664: 'localtime' : cannot convert parameter 1 from 'char *' to 'const time_t *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\program files\microsoft visual studio 10.0\my_progects\myclock\myclock\myclock ctrl.cpp(154): error C2664: 'BOOL CDC::ExtTextOutW(int,int,UINT,LPCRECT,LP CTSTR,UINT,LPINT)' : cannot convert parameter 5 from 'char [30]' to 'LPCTSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

Build FAILED.
Какаята проблема с указателями и с переводом типов данных...
Едем дальше.
Как сказано в 5 пункте добавил два события WM_CREATE и WM_TIMER, добавил код как надо, больше нигде не ругался. А те строки на которые ругался компилятор, я закоментировал. И вот ещё проблема- как узнать что активХ действительно работает? Т.к. нажимаю F5 и сообщение выводится " unable to start program 'c:\ProgramFiles.....\MyClock.ocx' ". Залазию в папку - файл создан, размер ~30,7кб. Но я хочу видеть это дело, как там часики будут показываться и время.
Пожалуйста, объясните в чём дело кому ни лень)))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2011, 15:11
Ответы с готовыми решениями:

Тестирование собственных ActiveX элементов
Всем привет! Уважаемые, подскажите чем тестировать созданные элементы ActiveX в 12-й студии. Обломно каждый раз создавать новый проект для...

Создание собственных элементов управления
Как правильно сдавать собственные элементы (для начала изменить внешний вид уже существующих), на базе обычной кнопки?

Создание и использование элементов ActiveX
Задание 1: Изучите и выполните практически процесс создания элемента управления на основе существующего компонента. 1. Создание элемента...

6
7 / 7 / 1
Регистрация: 02.03.2011
Сообщений: 19
06.03.2011, 09:04
вам компилятор сказал в чем проблема и указал на строки где ошибки, если это не понятно то сделайте копи паст из примера в свой проект.
0
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
06.03.2011, 09:41  [ТС]
Цитата Сообщение от barmaley2005 Посмотреть сообщение
вам компилятор сказал в чем проблема и указал на строки где ошибки, если это не понятно то сделайте копи паст из примера в свой проект.
Дак Я так и делал. В примере VSTUDIO 6ВЕРСИИ вроде, а у меня 10-я версия. И в новой версии перевод типов отличается. вот.
Скажите как в функции ExtTextOut вывести текущее время.
Делаю такую штуку:
Code
1
2
3
4
5
6
7
8
9
 
void CMyClockCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid) {
pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
char CurrentTime[30];
struct tm *newtime; long lTime; // Получить текущее время
time(&lTime);
newtime=localtime(&lTime);
pdc->ExtTextOut(rcBounds.left,rcBounds.top, ETO_CLIPPED, rcBounds,
CurrentTime, strlen(CurrentTime),NULL) ; }
И ничего не выходит. Получается абракадабра, не может приобразовать в строковый тип...
0
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
06.03.2011, 10:24
Преобразование времни в строковой тип
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <time.h>
 
 
int main()
{
    using namespace std;
 
    char CurrentTime[9]; // В формате ЧЧ:ММ:СС
    struct tm *newtime;
    long lTime;
    time(&lTime);
    newtime=localtime(&lTime);
    sprintf(CurrentTime,"%i:%i:%i", newtime->tm_hour, newtime->tm_min, newtime->tm_sec);
    cout << CurrentTime << endl;
 
    system("PAUSE");
    return 0;
}
1
3 / 3 / 0
Регистрация: 08.05.2010
Сообщений: 135
07.03.2011, 16:05  [ТС]
Клёво, а Я всегда писал ф-цию getch() и приходилось подключать ещё файл, чтобы консоль не закрылась. И спасибо за время.

Добавлено через 46 минут
(((( Не работает такое в VS10 ВЕРСИИ. В билдер вставил всё великолепно. А тут блин, хрень какаята. Не знаю что делать...

Добавлено через 59 минут
Наконец! ПОЛУЧИЛОСЬ!
Вот так сделал:
Code
1
2
3
4
5
6
7
8
9
10
using namespace std;
 
        char CurrentTime[9]; 
        struct tm *newtime;
        time_t lTime;
        time(&lTime);
        newtime=localtime(&lTime);
        CString str;
        str.Format(L"%i:%i:%i",newtime->tm_hour, newtime->tm_min, newtime->tm_sec,CurrentTime);
        pdc->TextOutW(100,200,str);
но как говорится "нет худо без добра"... после второго раза билдования, стала вылезать такая ошибка:
LINK : fatal error LNK1104: cannot open file 'C:\Program Files\Microsoft Visual Studio 10.0\MY_PROGECTS\MyClock\Release\MyClock .ocx'
Хотя файл там этот имеется. Приходится перезапускать VS и по новой строить проект. Очень не удобно. Из-за чего такое случилось???
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
07.03.2011, 17:15
Uklunok, в проектах разберись, у bigredcat был рабочий вариант. Что тебе еще надо??? Пошел уже с его кодом в MFC гулять.
0
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
07.03.2011, 18:11
Цитата Сообщение от Uklunok Посмотреть сообщение
Code
1
str.Format(L"%i:%i:%i",newtime->tm_hour, newtime->tm_min, newtime->tm_sec,CurrentTime);
Какой тайный смысл скрыт в добавлении CurrentTime, неинициализированного массива, содержащего всякий мусорО_о. И даже если в данном случае от этого вреда почти никакого нет, то в целом не мудрено, конечно, что у вас вполне рабочий код заводится только через час, другой. Аккуратней код пишите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2011, 18:11
Помогаю со студенческими работами здесь

Создание ActiveX элементов для MasterSCADA
Доброго времени суток. У меня такой вопрос, есть ли у кого ни будь документация по созданию и по следующему внедрению ActiveX в...

Создание собственных котролов
Прошу не ругать за то что не знаю как надо оформлять контролы :). Мне надо оформить класс как котрол. В классе есть несколько стандартных...

Создание собственных клавиш
Добрый вечер, На моей клавиатуре имеются дополнительные клавиши (s1-s6). Все они могут быть забиндены родной прогой под запуск различных...

Создание собственных компонентов
Народ подскажите есть такое задание &quot;Как создавать собственные компоненты в ASP.NET.&quot; всё перерыл ничего толком не нашёл где можно об...

Создание собственных исключений
Vsem privet. Kto mojet reshit sleduushee, Sam ne ponyal. budu blagodaren. source.h: class StackOfIntegers { public: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru