Форум программистов, компьютерный форум CyberForum.ru

Поясните предназначения каждого метода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с битами на C++ http://www.cyberforum.ru/cpp/thread239821.html
Доброго дня, уважаемые форумчане! Снова возникли определенные затруднения и я снова обращаюсь к вам. На этот раз проблема следующая. Есть массив типа unsigned int, с какими-то значениями, например, массив из 4-х элементов: 0100....1110 1111....0101 0000....0110 1101....0011, длина каждого элемента - 32 бита, стоит задача перебрать все возможные значения, отличные на 1,2,3...N бит от данного...
C++ Работа с DLL В общем смысл такой, есть библиотека, которая должна возвращать два значения. Одно интовское и одно текстовое. Какой длины будет тест я узнаю только в библиотеке, соответственно и память выделять надо в ней под char*, так как ансистринги лучше не использовать. Значит вот исходники.. Файл cpp библиотеки Код: c 1. //---------------------------------------------------------------------------... http://www.cyberforum.ru/cpp/thread238979.html
Чем сконвертировать в русский язык такие крякозябры? C++
Чем сконвертировать в русский язык такие крякозябры? OemToChar не подходит. Я мог бы разные способы перебрать, но кроме OemToChar и CharToOem ничего не знаю. Конкретно в данном случае проблема скорее всего в том, что файл изначально был в виндовой кодировке, но выдал его в utf-8 (или перекодировал), но точно не уверен
C++ Проверка на ошибки
старался написать прогу на C++ но там синтаксические ошибки(или несинтаксические) выдаёт, вродебы смотрел все верно, ребята посмотрите пожалуста, если есть ошибки исправьте если не трудно
C++ Поиск файлов в локальной сети http://www.cyberforum.ru/cpp/thread238846.html
Добрый день. Есть задача: написать программу для поиска файлов в локальной сети. Подскажите, пожалуйста, как это делается.
C++ Распараллеливание на C++ и MPI Задача состоит в том, чтобы написать параллельный алгоритм метода сопряженных градиентов для решения линейной системы. Непосредственно метод сопряженных градиентов сожержит на некоторых этапах: скалярное умножение векторов и умножение матрицы на вектор. Причем, умножение матрицы на вектор-диагональное, а матрица симметричная, положительно определена, разреженная. Хранится она в виде вектора,... подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ

Поясните предназначения каждого метода - C++

08.02.2011, 15:49. Просмотров 898. Ответов 0
Метки (Все метки)

Ребят подскажите можно ли как то проще реализовать???
В COM я не очень поэтому надеюсь на помощь спеца!

Привожу весь класс

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class CDiscFormatData;
 
// CDiscFormatDataEvent command target
 
class CDiscFormatDataEvent : public CCmdTarget
{
    DECLARE_DYNAMIC(CDiscFormatDataEvent)
private:
    LPTYPEINFO  m_ptinfo;           // ITest type information
    DWORD       m_dwCookie;
    LPUNKNOWN   m_pUnkSink;
    LPUNKNOWN   m_pUnkSrc;
 
public:
    CDiscFormatDataEvent();
    virtual ~CDiscFormatDataEvent();
 
    static CDiscFormatDataEvent* CreateEventSink();
 
    bool ConnectDiscFormatData(CDiscFormatData*);
 
    DECLARE_INTERFACE_MAP()
 
    BEGIN_INTERFACE_PART(FormatDataEvents, DDiscFormat2DataEvents)
        //
        // IDispatch Methods
        //
        STDMETHOD(GetTypeInfoCount)(UINT FAR* pctinfo);
        STDMETHOD(GetTypeInfo)(UINT itinfo, LCID lcid, ITypeInfo FAR* FAR* pptinfo);
        STDMETHOD(GetIDsOfNames)(REFIID riid, OLECHAR FAR* FAR* rgszNames,
            UINT cNames, LCID lcid, DISPID FAR* rgdispid);
        STDMETHOD(Invoke)(DISPID dispidMember, REFIID riid, LCID lcid,
            WORD wFlags, DISPPARAMS FAR* pdispparams, VARIANT FAR* pvarResult,
            EXCEPINFO FAR* pexcepinfo, UINT FAR* puArgErr);
        //
        // DDiscFormat2DataEvents Methods
        //
        STDMETHOD_(HRESULT, Update)(LPDISPATCH, LPDISPATCH);
    END_INTERFACE_PART(FormatDataEvents)
 
protected:
    DECLARE_MESSAGE_MAP()
};
Ну и реализация самих методов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
// CDiscFormatDataEvent
 
IMPLEMENT_DYNAMIC(CDiscFormatDataEvent, CCmdTarget)
 
BEGIN_INTERFACE_MAP(CDiscFormatDataEvent, CCmdTarget)
    INTERFACE_PART(CDiscFormatDataEvent, IID_IDispatch, FormatDataEvents)
    INTERFACE_PART(CDiscFormatDataEvent, IID_DDiscFormat2DataEvents, FormatDataEvents)
END_INTERFACE_MAP()
 
CDiscFormatDataEvent::CDiscFormatDataEvent()
: m_hNotifyWnd(NULL)
, m_ptinfo(NULL)
, m_dwCookie(0)
, m_pUnkSink(0)
, m_pUnkSrc(0)
{
 
}
 
CDiscFormatDataEvent::~CDiscFormatDataEvent()
{
    if (m_dwCookie && (m_pUnkSrc != NULL) && (m_pUnkSink != NULL))
    {
        AfxConnectionUnadvise(m_pUnkSrc, IID_DDiscFormat2DataEvents, m_pUnkSink,
            TRUE, m_dwCookie);
    }
}
 
BEGIN_MESSAGE_MAP(CDiscFormatDataEvent, CCmdTarget)
END_MESSAGE_MAP()
 
 
 
// CDiscFormatDataEvent message handlers
 
ULONG FAR EXPORT CDiscFormatDataEvent::XFormatDataEvents::AddRef()
{
    METHOD_PROLOGUE(CDiscFormatDataEvent, FormatDataEvents)
    return pThis->ExternalAddRef();
}
ULONG FAR EXPORT CDiscFormatDataEvent::XFormatDataEvents::Release()
{
    METHOD_PROLOGUE(CDiscFormatDataEvent, FormatDataEvents)
    return pThis->ExternalRelease();
}
STDMETHODIMP CDiscFormatDataEvent::XFormatDataEvents::QueryInterface
                        (REFIID riid, LPVOID FAR* ppvObj)
{
    METHOD_PROLOGUE(CDiscFormatDataEvent, FormatDataEvents)
    return (HRESULT)pThis->ExternalQueryInterface(&riid, ppvObj);
}
STDMETHODIMP
CDiscFormatDataEvent::XFormatDataEvents::GetTypeInfoCount
                        (UINT FAR* pctinfo)
{
    METHOD_PROLOGUE(CDiscFormatDataEvent, FormatDataEvents)
    *pctinfo = 1;
    return NOERROR;
}
STDMETHODIMP CDiscFormatDataEvent::XFormatDataEvents::GetTypeInfo
                        (
                            UINT itinfo,
                            LCID lcid,
                            ITypeInfo FAR* FAR* pptinfo
                        )
{
    METHOD_PROLOGUE(CDiscFormatDataEvent, FormatDataEvents)
    *pptinfo = NULL;
 
    if(itinfo != 0)
        return ResultFromScode(DISP_E_BADINDEX);
    pThis->m_ptinfo->AddRef();
    *pptinfo = pThis->m_ptinfo;
    return NOERROR;
}
STDMETHODIMP CDiscFormatDataEvent::XFormatDataEvents::GetIDsOfNames
                        (
                            REFIID riid,
                            OLECHAR FAR* FAR* rgszNames,
                            UINT cNames,
                            LCID lcid,
                            DISPID FAR* rgdispid
                        )
{
    METHOD_PROLOGUE(CDiscFormatDataEvent, FormatDataEvents)
    return DispGetIDsOfNames(pThis->m_ptinfo, rgszNames, cNames, rgdispid);
}
STDMETHODIMP CDiscFormatDataEvent::XFormatDataEvents::Invoke
                        (
                            DISPID dispidMember,
                            REFIID riid,
                            LCID lcid,
                            WORD wFlags,
                            DISPPARAMS FAR* pdispparams,
                            VARIANT FAR* pvarResult,
                            EXCEPINFO FAR* pexcepinfo,
                            UINT FAR* puArgErr
                        )
{
    METHOD_PROLOGUE(CDiscFormatDataEvent, FormatDataEvents)
 
    return DispInvoke(&pThis->m_xFormatDataEvents, pThis->m_ptinfo,
        dispidMember, wFlags, pdispparams, pvarResult, pexcepinfo, puArgErr);
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru