Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C/C++ Вывод на экран информации о жестком диске Доброго времени суток, товарищи. Заранее прошу прощения если не в том разделе пишу, но вопрос такой: нужно написать программы которая выведет информацию об установленном в системе жестком диске (под Windows 7): - модель; - версию прошивки; - серийный номер; - сведения о памяти (свободно/занято/всего); - список поддерживаемых стандартов ATA; - список поддерживаемых режимов доступа к памяти.... https://www.cyberforum.ru/ c-cpp/ thread1937564.html Рекомендуемая литература и статьи (нужно подключить код на C++ к VBA) C/C++
У меня есть код, написанный на C++, содержащий классы. Нужно, чтобы я мог на VBA Excel создавать и использовать объекты классов, реализованных на C++. Гугл подсказал, что это можно сделать через COM. Однако, что дальше делать не знаю. В Visual Studio это интуитивно не понятно. Посоветуйте каких-то базовых практико-ориентированных материалов по COM, чтобы разобраться в этом.
C/C++ Запись строки в doc через CLSID Доброго времени суток. Как с помощью clsid записать в doc текст. Вот как производится открытие : HRESULT AutoWrap(int autoType, VARIANT *pvResult, IDispatch *pDisp, LPOLESTR ptName, int cArgs...) { // Begin variable-argument list... va_list marker; va_start(marker, cArgs); if (!pDisp) { https://www.cyberforum.ru/ c-cpp/ thread1934658.html C/C++ Как получить id оборудования из библиотеки CEnumerateSerial? https://www.cyberforum.ru/ c-cpp/ thread1930121.html
Всем доброго утра. Использую библиотеку CEnumerateSerial для сканироания ком портов. Все нормально выводит. Однако хотелось бы получить также ИД оборудования? Никто не знает как это сделать?
C/C++ Ошибка 0x80020009 через несколько секунд после запуска из своей программы Excel 2016 (подписка Office 365)
При помощи Excel программа формирует файлы с данными. Все работает нормально. Однако, на машине с Excel 2016 (подписка Office 365) во время формирования файла (через несколько секунд после начала формирования - фактически через несколько секунд после запуска из своей программы нового экземпляра Excel или обращения к уже запущенному экземпляру Excel) при добавлении данных возникает ошибка...
C/C++ Excel, шрифт, цвет шрифта, цвет фона ячейки и прочие свойства ячейки Доброго времени суток. Пишу программу для редактирования .xlsx файла на visual c++. Благодаря примерам кода от vxg на этом форуме разобрался почти со всеми интересующими вопросами, кроме получения и установки свойств ячейки, таких как шрифт, его цвет или цвет фона. Буду очень благодарен за пример. https://www.cyberforum.ru/ c-cpp/ thread1921768.html
C/C++ ActiveQt + Excel. Перенос Chart на другой лист https://www.cyberforum.ru/ c-cpp/ thread1916483.html
Доброго времени суток. Пишу программу для переноса данных из текстового файла в Excel. Возникла проблема с графиками. При создании нового графика создается новый лист. Как перенести график на основной лист с данными? Код: range = worksheet->querySubObject("Range(const QVariant&)", QVariant("A2:C200")); range->dynamicCall("Select()"); //Создаем объект Charts (коллекция...
Открытие листа excel через кнопку C/C++
Разобраться не могу. Множество форумов прочитал, нужной информации не нашел. 1. Необходимо через кнопку открыть лист в Excel. 2. Изменить значение нужных мне ячеек через edit
C/C++ Чтение информации с весов через COM порт https://www.cyberforum.ru/ c-cpp/ thread1912065.html
Здравствуйте. Недавно начал изучать C++ и стоит такая задача. У меня есть программка, которая должна считывать вес через COM порт и выводить его в поле по нажатию клавиши "Read". Но вместо этого при ее нажатии, программа просто зависает. Может кто подскажет, где ошибся? Заранее спасибо. #include "stdafx.h" #include <iostream> #define STYLBTN WS_CHILD|BS_DEFPUSHBUTTON|WS_VISIBLE #define...
C/C++ Ошибка при компилировании программы Всем привет Вот такая ситуация. При компилировании программы происходит ошибка: Подскажите, в чем проблема. Спасибо https://www.cyberforum.ru/ c-cpp/ thread1908682.html
C/C++ Ошибка компиляции при подключении TLB
При подключении(#import) TLB к консольному приложению возникает ошибка "redefinition; different storage class". В tlh файле ошибки появляются в этом месте const BSTR idBeforePlace = (wchar_t*) L"beforePlace"; const BSTR idAfterPlace = (wchar_t*) L"afterPlace"; const BSTR idBeforePlace = (wchar_t*) L"beforePlace"; // Error C2370 'InDesign::idBeforePlace': redefinition; different...
C/C++ Работа с MFC. Разработка программы MiniDraw https://www.cyberforum.ru/ c-cpp/ thread1904399.html
Всем здрасте) тут такая проблемка. есть ли люди, которые немного разбираются в MFC приложении. У нас при запуске программы в окне рисуем эллипсы. Надо сделать чтобы по нажатию на ALT рисовала элипсы зеленого цвета. Помогите кто чем может) куда нужно этот обработчик закинуть по ALT
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
0

Чё за ошибка? 113 35 [Error] 'IUnknown' is ambigouous base of 'CA' - C/C++ - Ответ 10219687

16.03.2017, 17:24. Показов 1357. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Я уже с ума скоро сойду хД. Я пишу одно и то же 30-й раз,компилятор мне выводит в разное время разные ошибки. Как библиотеку c "IUnknown" подключаю,вообще конец. То фу-я не экспортируется....

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
105
106
107
108
109
110
111
112
113
114
115
116
/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>
#include <objbase.h>
 
static const IID IID_IX = {0x439508bd,0xd021,0x4cb9,0xa52e,0xabab9c988574};
static const IID IID_IY = {0x14de7546,0x95ae,0x4eea,0xa883,0xf400923c33eb};
 
DllClass::DllClass()
{
 
}
 
 
DllClass::~DllClass ()
{
 
}
 
 
BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                       DWORD reason        /* Reason this function is being called. */ ,
                       LPVOID reserved     /* Not used. */ )
{
    switch (reason)
    {
      case DLL_PROCESS_ATTACH:
        break;
 
      case DLL_PROCESS_DETACH:
        break;
 
      case DLL_THREAD_ATTACH:
        break;
 
      case DLL_THREAD_DETACH:
        break;
    }
 
    /* Returns TRUE on success, FALSE on failure */
    return TRUE;
}
 
interface IX : IUnknown
{
    virtual int _stdcall Fx() = 0;
};
 
interface IY : IUnknown
{
    virtual int _stdcall Fy() = 0;
};
 
class CA : public IX,public IY
{
    private:
        int m_cRef = 0;
        
    public:
        virtual HRESULT _stdcall QueryInterface(const IID &iid,void** ppv);
        virtual ULONG _stdcall AddRef();
        virtual ULONG _stdcall Release();
        
        virtual int _stdcall Fx()
        {
            return 83;
        }
        
        virtual int _stdcall Fy()
        {
            return 11;
        }
};
 
HRESULT _stdcall CA :: QueryInterface(const IID &iid,void** ppv)
{
    if (iid == IID_IX)
    {
        *ppv = static_cast<IX*>(this);
    }
    
    else if (iid == IID_IY)
    {
        *ppv = static_cast<IY*>(this);
    }
    
    else
    {
        *ppv = NULL;
        return E_NOINTERFACE;
    }
    
    reinterpret_cast<IUnknown*>(*ppv)->AddRef();
}
 
ULONG _stdcall CA :: AddRef()
{
    return ++m_cRef;
}
 
ULONG _stdcall CA :: Release()
{
    if (--m_cRef==0)
    {
        delete this;
    }
    
    return m_cRef;
}
 
extern "C" IUnknown* CreateInstance()
{
    IUnknown* pI = (IUnknown*)(new CA);
    pI->AddRef();
    return pI;
}
Добавлено через 8 минут
Ещё "клиент" не работает:
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
#include <iostream>
#include "dll.h"
#include <objbase.h>
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 
typedef IUnknown* (*CREATEFUNCPTR)();
 
IUnknown* CallCreateInstance(char *name)
{
    HINSTANCE hComponent = :: LoadLibrary(name);
    
    if (hComponent == NULL)
    {
        printf("Error\n");
        return NULL;
    }
    
    CREATEFUNCPTR CreateInstance = (CREATEFUNCPTR) :: GetProcAddress(hComponent,"CreateInstance");
    
    if (CreateInstance == NULL)
    {
        printf("Error of export CreateInstance\n");
        return NULL;
    }
    
    return CreateInstance();
}
 
int main(int argc, char** argv) {
    
    CallCreateInstance("C_DLL.dll");
    
    return 0;
}
В проверке на нуль выдаёт принт с ошибкой.

Добавлено через 6 минут
Компилятор псих какой-то. Я забыл вернуть значение,но мне вообще ничего про это не выдал....

Добавлено через 1 час 9 минут
Это вообще какой-то ужас. Длл сделал на Dev c++, Клиент на VS. Вот теперь ошибки в чём они? И вообще объясните весь код,то,что там после typedef. Эти getproc.CREATEFUNCPTR.

1>c:\users\user\documents\visual studio 2008\projects\create_cl\create_cl\create_cl.cpp(13) : error C2664: LoadLibraryW: невозможно преобразовать параметр 1 из 'char *' в 'LPCWSTR'
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>Журнал построения был сохранен в "file://c:\Users\User\Documents\Visual Studio 2008\Projects\CREATE_CL\CREATE_CL\Debug\BuildLog.htm"
1>CREATE_CL - ошибок 1, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

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
// CREATE_CL.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include "dll.h"
#include <windows.h>
 
typedef IUnknown* (*CREATEFUNCPTR)();
 
IUnknown* CallCreateInstance(char *name)
{
    HINSTANCE hComponent = ::LoadLibrary(name);
 
    if (hComponent == NULL)
    {
        printf("Error\n");
        return NULL;
    }
 
    CREATEFUNCPTR CreateInstance = (CREATEFUNCPTR)::GetProcAddress(hComponent,"CreateInstance");
 
    if(CreateInstance == NULL)
    {
        printf("Error of expotr\n");
        return NULL;
    }
 
    return CreateInstance();
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
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
105
106
107
108
109
110
111
112
113
114
115
116
#include "dll.h"
#include <windows.h>
#include <objbase.h>
 
static const IID IID_IX = {0x439508bd,0xd021,0x4cb9,0xa52e,0xabab9c988574};
static const IID IID_IY = {0x14de7546,0x95ae,0x4eea,0xa883,0xf400923c33eb};
 
DllClass::DllClass()
{
 
}
 
 
DllClass::~DllClass ()
{
 
}
 
 
BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                       DWORD reason        /* Reason this function is being called. */ ,
                       LPVOID reserved     /* Not used. */ )
{
    switch (reason)
    {
      case DLL_PROCESS_ATTACH:
        break;
 
      case DLL_PROCESS_DETACH:
        break;
 
      case DLL_THREAD_ATTACH:
        break;
 
      case DLL_THREAD_DETACH:
        break;
    }
 
    /* Returns TRUE on success, FALSE on failure */
    return TRUE;
}
 
interface IX : IUnknown
{
    virtual int _stdcall Fx() = 0;
};
 
interface IY : IUnknown
{
    virtual int _stdcall Fy() = 0;
};
 
class CA : public IX,public IY
{
    private:
        int m_cRef = 0;
        
    public:
        virtual HRESULT _stdcall QueryInterface(const IID &iid,void** ppv);
        virtual ULONG _stdcall AddRef();
        virtual ULONG _stdcall Release();
        
        virtual int _stdcall Fx()
        {
            return 83;
        }
        
        virtual int _stdcall Fy()
        {
            return 11;
        }
};
 
HRESULT _stdcall CA :: QueryInterface(const IID &iid,void** ppv)
{
    if (iid == IID_IX)
    {
        *ppv = static_cast<IX*>(this);
    }
    
    else if (iid == IID_IY)
    {
        *ppv = static_cast<IY*>(this);
    }
    
    else
    {
        *ppv = NULL;
        return E_NOINTERFACE;
    }
    
    reinterpret_cast<IUnknown*>(*ppv)->AddRef();
    return S_OK;
}
 
ULONG _stdcall CA :: AddRef()
{
    return ++m_cRef;
}
 
ULONG _stdcall CA :: Release()
{
    if (--m_cRef==0)
    {
        delete this;
    }
    
    return m_cRef;
}
 
extern "C" IUnknown* CreateInstance()
{
    IUnknown* pI = (IUnknown*)(new CA);
    pI->AddRef();
    return pI;
}
Добавлено через 18 часов 24 минуты
Да что за ошибка?

Добавлено через 45 секунд
Я из-за этого бреда уже недели 3 не могу освоить динамическую компоновку

Вернуться к обсуждению:
Чё за ошибка? 113 35 [Error] 'IUnknown' is ambigouous base of 'CA' C/C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2017, 17:24
Готовые ответы и решения:

Ошибка: const Error 113: Error in statement
const nmax=100; var a: array of real; i,j,d,n,m: integer; begin randomize; write('Введите...

ошибка 113 error in statment
проблема в следующем коде: program schet; uses crt; var a, b, c: integer; var vop: string;...

Ошибка 113 error in statement
Здравствуйте! у меня есть задание: исправить ошибки в программе и записать правильный вариант. Я...

Ошибка инструкции (Error 113 in statement)
Сделал программу ну в самом конце программы перед End. выдаёт ошибку 113 Ошибка инструкции(Error...

0
16.03.2017, 17:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2017, 17:24
Помогаю со студенческими работами здесь

Ошибка в программе 113 error is statement
ошибка в прогрмме 113 error is statement Program z3; Uses Crt; Var x,a,y,f:real; begin...

Вращение отрезка и ошибка "Error 113. Error in statement"
Здравствуйте, встретил старый студенческий листинг реализации задачи: &quot;Отрезок, поворачивающийся...

Не могу исправить ошибку :113 H:\Dev-Cpp\Проекты\уроки\Безымянный3.cpp cannot convert `IDirectDraw7**' to `IDirectDraw**' for argument `2' to `HRESULT DirectDrawCreate(GUID*, IDirectDraw**, IUnknown*)
Недавно начал изучать оконные программы и работу с DirectX. Но при написании программы столкнулся...

visual studio 2008 c++ перевести IUnknown** переменную в IUnknown*
Как перевести IUnknown** переменную в IUnknown* ? Помогите пожалуйста.

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru