Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702

Транслируются ли аргументы функции CoCreateInstance в аргументы функции DllGetClassObject?

22.03.2013, 17:40. Показов 4176. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
НУ то есть я думаю должно быть понятно, о чём речь. В клиенте вызывается функция:

C++
1
2
3
4
5
6
7
CoCreateInstance (
REFCLSID,
аргумент__2,
аргумент__3
REFIID,
void**
);
Речь идё о первом, четвёртом и пятом аргументах. Вроде как они точно должны соответствовать Этим аргументам:

C++
1
STDAPI DllGetClassObject(const GUID& Guid, const GUID& Iid, void ** ppv){;}
Тем более, что тут написано:

Для того, чтобы система выяснила какой сервер необходимо активизировать (просмотрев системный реестр), загрузила его, и вызвала у этого сервера функцию DllGetClassObject клиент на своей стороне вызывает "широко известную в узких кругах" функцию Win32 API CoCreateInstance - создать экземпляр объекта. MSDN дает о ней следующую справку:

STDAPI*CoCreateInstance(
REFCLSID*rclsid, //CLSID объекта класса
LPUNKNOWN*pUnkOuter,
DWORD*dwClsContext,
REFIID*riid, //Ссылка на идентификатор интерфейса, который взаимодействует с объектом LPVOID***ppv //Адрес выходной переменной, которая принимает указатель на интерфейс, указанный riid );

Аргументы pUnkOuter и dwClsContext в данный момент нас не интересуют, они указывают системе среди DLL или EXE-серверов искать интересующий нас объект и агрегировать ли его. А вот три других аргумента - в точности те, которые передаются системой функции сервера DllGetClassObject. И - функцию CoCreateInstance клиент вызывает из своего кода. Иными словами - вызов клиентом функции CoCreateInstance "транслируется" системой в вызов функции DllGetClassObject на стороне сервера. DllGetClassObject возвращает адрес объекта, система передает его CoCreateInstance, которая возвращает его клиенту. Всё, наша экскурсия в философию закончена - пункты с первого по четвёртый проиллюстрированы сущностями операционной системы.
НО я так считаю, что это бред сивой кобылы. Аргумент REFIID функции CoCreateInstance соответствует аргументу REFIID функции CoCreateInstance как свинья апельсинам. Если кто возразит, приведу доказательства.

Если возражений не будет, тогда вопрос- почему так? Вроде как должен соответствовать-то! Иначе какой смысл в вызове CoCreateInstance с точно определённым четвёртым параметром, если на выходе (точнее- при вызове DllGetClassObject) он преобразуется в невесть что?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.03.2013, 17:40
Ответы с готовыми решениями:

Создание функции, формирующую предложение из аргументов функции, аргументы . Аргументы - переменное число
Короче, вот бы всё норм. Хочу соединять, но он мне выдаёт ошибку, когда использую strcat. Не могу понять, с типами аргументов вроде проблем...

Аргументы функции: что значит "большие" и "небольшие" аргументы?
Здравствуйте! Всем доброго дня! Растолкуйте пожалуйста! Что значит большие и небольшие?

Аргументы функции
Доброго времени суток. Есть функция очистки переменных посредством mysql_real_escape_string. В ней содержаться 3 аргумента, и я возвращаю...

17
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
23.03.2013, 19:25  [ТС]
Чё, никто не задумывался над этим что ли?

Короче, я делаю вывод, что это просто-напросто ошибка автора. Ещё раз: аргументы CoCreateInstance НЕ ТРАСЛИРУЮТСЯ в аргументы DllGetClassObject (чего не скажешь про аргументы CoGetClassObject)
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
25.03.2013, 09:23
Цитата Сообщение от kravam Посмотреть сообщение
Чё, никто не задумывался над этим что ли
вы сами то пробовали реализовать и посмотреть что будет? или работаем на кончике пера? вот реализация функции и последующий вызов создающий объект. попробуйте ответить на свой вопрос, а то я его не очень пойму.
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
HRESULT __stdcall __export DllGetClassObject(
    REFCLSID rclsid, REFIID riid, void **ppvObject)
{
    sys_log.printf("DllGetClassObject\n");
 
    HRESULT res = CLASS_E_CLASSNOTAVAILABLE;
 
    if (rclsid == CLSID_CoMyObject)
    {
        CoMyObjectClassFactory *p = new(std::nothrow) CoMyObjectClassFactory;
        if (!p) return E_OUTOFMEMORY;
 
        res = p->QueryInterface(riid, ppvObject);
        if (FAILED(res)) delete p;
    }
 
    return res;
}
...
IMyObject *pi;
CoCreateInstance
(
    CLSID_CoMyObject, 0, context, IID_IMyObject,
    (LPVOID *)&pi
);
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.03.2013, 10:47
Цитата Сообщение от kravam Посмотреть сообщение
Если кто возразит, приведу доказательства.
ну давай, приводи.
CoCreateInstance создает компонент через фабрику, у Роджерсона(Основы Ком) можно посмотреть примерную реализацию.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
25.03.2013, 11:45  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
вы сами то пробовали реализовать и посмотреть что будет?
а то. А вы специально пишите страшные слова типа sys_log, CoMyObjectClassFactory чтобы я на них отвлёкся?

Цитата Сообщение от Jupiter Посмотреть сообщение
ну давай, приводи.
Вот ПРОСТОЙ проект. Никаких слов-отвлекалок. Хидер, клиент, сервер. Чисто вывод четвёртого параметра CoCreateInstance, псле чего вывод второго параметра DllGetClassObject; эта функция в самом конце. Вот она, кстати ТОЛЬКО чтобы продемонстрировать её второй параметр:
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
//Эта функция просто преобразует последовательность байт в строку ANSI
//******************************************************************************
char* f (char* rez, char* src, int count) {
 for (int i= 0; i< count; i++ ) {
  unsigned char t;
  t= ((unsigned char)src[i])/0X10;
  t<10?(rez[i*2]= t+48):(rez[i*2]= t+ 55);
  t= ((unsigned char)src[i])%0X10;
  t<10?(rez[i*2+ 1]= t+48):(rez[i*2+ 1]= t+ 55);
 }
 rez [count*2]= 0;
 return rez;
}
 
 
 
//******************************************************************************
STDAPI DllGetClassObject(const GUID& Guid,
                         const GUID& Iid,
                         void ** ppv
                        ){
 
        char tmp__ [sizeof (GUID)* 2+ 1];
        f (tmp__, (char*)&Iid, sizeof (GUID));
        
        //ВЫвод Iid
        printf (tmp__);
        
        getchar (); 
  
}
Там ещё файл "компилить.txt", где написано, как компилить и два батника для регистрации и разрегистрации.
Вложения
Тип файла: rar проект.rar (3.0 Кб, 24 просмотров)
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
25.03.2013, 11:55  [ТС]
Цитата Сообщение от Jupiter Посмотреть сообщение
CoCreateInstance создает компонент через фабрику, у Роджерсона(Основы Ком) можно посмотреть примерную реализацию.
это второй вопрос чего она там создаёт, щас я хочу увидеть соответствие параметров её И DllGetClassObject

Добавлено через 8 минут
Дай-ка вывод напишу, а то не поверят ведь:
Bash
1
2
3
4
четвёртый параметр равен
  B25D9D3F1334D511AE3800E02944637A
, а в DllGetClassObject он чудесным образом становится равным...
  0100000000000000C000000000000046
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
25.03.2013, 11:58
Цитата Сообщение от kravam Посмотреть сообщение
А вы специально пишите страшные слова типа sys_log, CoMyObjectClassFactory чтобы я на них отвлёкся
просто выдернуто прямо из дымящегося камня)
не понимаю что должен показать ваш пример. мой пример корректно работает создавая все что нужно в соответствии с переданными аргументами нисколько их не искажая. чудес не бывает. поясните на что вы хотите открыть нам глаза.

Добавлено через 1 минуту
Цитата Сообщение от kravam Посмотреть сообщение
а то не поверят ведь
да, не верим. наверное в вашей функции вывода ошибка в отладчике пробовали смотреть?

Добавлено через 1 минуту
попробуйте вываливать GUID на экран чем то таким
C++
1
2
3
4
5
6
7
8
std::wstring guid_to_wstr(const GUID &guid)
{
    LPOLESTR ws = 0;
    StringFromCLSID(guid, &ws);
    std::wstring res = ws;
    CoTaskMemFree(ws);
    return res;
}
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
25.03.2013, 12:00  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
да, не верим
То есть я правильно понял что вы запускать не запускали, но не верите? Типа: "не читал, но осуждаю?"
Вот запустите и убедитесь сами. А потом дальше будем разговаривать. Так-то смешно: функция выводит то, чего не ожидалось, значит, функция неверна. Гениально. А может на вход не то подано?
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
25.03.2013, 12:24
ага. из exe уходит ваш IID, а в DLL приходит IID IUnknown. потом система сама через QueryInterface получает ваш интерфейс и возвращает его в качестве результата вызова функции. не?

Добавлено через 37 секунд
ужасный лог:
======================================== ==========
CoInitializeEx...
CoInitializeEx ok
CoInitializeSecurity
CoInitializeSecurity ok
CoMyObjectClassFactory::ctor
CoRegisterClassObject...
CoMyObjectClassFactory::AddRef
CoMyObjectClassFactory::AddRef
CoMyObjectClassFactory::QueryInterface (iid = {00000001-0000-0000-C000-000000000046}, iname = IClassFactory)
CoMyObjectClassFactory::AddRef
CoMyObjectClassFactory::Release
CoMyObjectClassFactory::CreateInstance (iid = {00000000-0000-0000-C000-000000000046}, iname = IUnknown)
CoMyObject::ctor
CoRegisterClassObject ok
CoMyObject::QueryInterface (iid = {00000000-0000-0000-C000-000000000046}, iname = IUnknown)
CoMyObject::AddRef
CoMyObject::AddRef
CoMyObject::QueryInterface (iid = {00000003-0000-0000-C000-000000000046}, iname = N/A)
CoMyObject::QueryInterface (iid = {0000001B-0000-0000-C000-000000000046}, iname = N/A)
CoMyObject::QueryInterface (iid = {00000000-0000-0000-C000-000000000046}, iname = IUnknown)
CoMyObject::AddRef
CoMyObject::AddRef
CoMyObject::QueryInterface (iid = {00000018-0000-0000-C000-000000000046}, iname = N/A)
CoMyObject::QueryInterface (iid = {00000019-0000-0000-C000-000000000046}, iname = N/A)
CoMyObject::QueryInterface (iid = {4C1E39E1-E3E3-4296-AA86-EC938D896E92}, iname = N/A)
CoMyObject::Release
CoMyObject::QueryInterface (iid = {2B952F0A-8797-428C-8E18-5D037CFEBB1D}, iname = IMyObject)
CoMyObject::AddRef
CoMyObject::AddRef
CoMyObject::Release
CoMyObject::Release
CoMyObjectClassFactory::Release
CoMyObject::QueryInterface (iid = {1C733A30-2A1C-11CE-ADE5-00AA0044773D}, iname = N/A)
CoMyObject::QueryInterface (iid = {2B952F0A-8797-428C-8E18-5D037CFEBB1D}, iname = IMyObject)
CoMyObject::AddRef
CoMyObject::GetX
CoMyObject::GetX
CoMyObject::Release
CoMyObject::Release
CoMyObject::Release
CoMyObject::Release
CoMyObject::dctor
CoRevokeClassObject...
CoMyObjectClassFactory::QueryInterface (iid = {00000003-0000-0000-C000-000000000046}, iname = N/A)
CoMyObjectClassFactory::QueryInterface (iid = {00000000-0000-0000-C000-000000000046}, iname = IUnknown)
CoMyObjectClassFactory::AddRef
CoMyObjectClassFactory::Release
CoMyObjectClassFactory::Release
CoMyObjectClassFactory::dctor
CoRevokeClassObject ok
CoUninitialize...
CoUninitialize ok
======================================== ==========

Добавлено через 1 минуту
...попутно в некоторых случаях мы можем увидеть запрос всякого хлама вроде интерфейса маршаллера или вообще хрен пойми чего. да, такая у нас система, любопытная она
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
25.03.2013, 12:30  [ТС]
Так чё ага-то? Я понимаю, что там много чего вызывается. И не просто так в DllGetClassObject приходит IID_IUnknown, значит надо так. С этим-то что делать?:
три других аргумента - в точности те, которые передаются системой функции сервера DllGetClassObject.
списываем на ошибку автора?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.03.2013, 13:16
Цитата Сообщение от kravam Посмотреть сообщение
С этим-то что делать?
да что хочешь то и делай, а верю Роджерсону и Троэльсону

Добавлено через 1 минуту

Не по теме:

А вы специально пишите страшные слова чтобы я на них отвлёкся?
Цитата Сообщение от kravam Посмотреть сообщение
C++
1
t<10?(rez[i*2]= t+48):(rez[i*2]= t+ 55);
убил:D
C++
1
rez[i * 2] = t < 10 ? t + 48 : t + 55



Добавлено через 4 минуты
Цитата Сообщение от kravam Посмотреть сообщение
а в DllGetClassObject он чудесным образом становится равным...
* 0100000000000000C000000000000046
а в DllGetClassObject он чудесным образом становится удивительно похожим на IID IClassFactory
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
25.03.2013, 13:36
Цитата Сообщение от kravam Посмотреть сообщение
списываем на ошибку автора
вы так об этом говорите, как будто он мост неправильно посчитал и люди погибли. спишем на ошибку перевода и вашу дотошность при анализе предложения великого русского языка.
Цитата Сообщение от Jupiter Посмотреть сообщение
а в DllGetClassObject он чудесным образом становится удивительно похожим на IID IClassFactory
кстати, да
таким образом - об чем сыр бор?
0
25.03.2013, 13:40

Не по теме:

Цитата Сообщение от vxg Посмотреть сообщение
таким образом - об чем сыр бор?
а хз:D

0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
25.03.2013, 13:57  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
спишем на ошибку перевода и вашу дотошность при анализе предложения великого русского языка.
Так он русский... Он Михаил Безверхов. И он автор

Цитата Сообщение от vxg Посмотреть сообщение
кстати, да
таким образом - об чем сыр бор?
Действительно было
3F9D5DB2-3413-11d5-AE38-00E02944637A
стал
0100000000000000C000000000000046, то есть IClassFactory

А не должно было стать. Чему удивляться, действительно...
Вот об этом и сыр бор, почему он стал IClassFactory. То, что он стал IClassFactory я и сам знаю. И оно не "кстати да." Оно ничё не объясняет. Ещё раз: я понимаю, что раз оно становится IClassFactory значит, так и надо. Но что делать с цитатой?

мнение Jupiterа мне известно- "ой не трогайте меня, вы поколеблите мои устои даже читать ничё не буду. И да, константа эта называется IClassFactory" И считает что всё объяснил. Гениально, чё сказать.
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
25.03.2013, 14:35
Цитата Сообщение от kravam Посмотреть сообщение
значит, так и надо
именно так. DllGetClassObject используется для получения объекта который будет штамповать объекты, т.е. фабрики классов. вот, например,
http://msdn.microsoft.com/ru-R... s.85).aspx
(хотя там и написано "Usually, this is IID_IClassFactory" я думаю правильнее было бы написать "если вы в своем уме то это должна быть фабрика классов" потому как иначе ломается вся задумка. затрудняюсь ответить что будет делать CoCreateInstance если не найдет фабрику. мб запросит IUnknown, или даже запрашиваемый пользователем интерфейс, но я думаю рухнет. сейчас попробую )

Добавлено через 10 минут
да, упала. лог вот такой
=======================
DLL_PROCESS_ATTACH
DllGetClassObject
CoMyObject::ctor
CoMyObject::QueryInterface (iid = {00000001-0000-0000-C000-000000000046}, iname = IClassFactory)
CoMyObject::dctor
DLL_PROCESS_DETACH
=======================
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
25.03.2013, 14:49  [ТС]
Ну пусть так.
Дело-то ещё в том, что по факту DllGetClassObject (если вызывается CoCreateInstance) не нужна ВООБЩЕ.
Ну то есть как не нужна- ну да, при вызове CoCreateInstance и отсутствии DllGetClassObject программа рухнет наверное, я не спорю. Но сделайте DllGetClassObject просто для проформы- лишь бы возвращала корректное значение и всё, CoCreateInstance нормально отработает.

А раз так, то вывод: можно было бы всё это замутить так, чтобы COM-объект работал вообще без DllGetClassObject (при условии использования CoCreateInstance). Но это конечно дело тех, кто придумал COM-объекты. Меня это щас мало интересует, это их дела. Просто такой вот фактик.

Я ведь так понимаю, что DllGetClassObject нужна, чтобы мы там вручную могли что-то написать. А если оно автоматом всё делается, то... вот

А как вы получаете такие логи?
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
25.03.2013, 14:55
Цитата Сообщение от kravam Посмотреть сообщение
Дело-то ещё в том, что по факту DllGetClassObject (если вызывается CoCreateInstance) не нужна ВООБЩЕ.
Ну то есть как не нужна- ну да, при вызове CoCreateInstance и отсутствии DllGetClassObject программа рухнет наверное, я не спорю. Но сделайте DllGetClassObject просто для проформы- лишь бы возвращала корректное значение и всё, CoCreateInstance нормально отработает.
А раз так, то вывод: можно было бы всё это замутить так, чтобы COM-объект работал вообще без DllGetClassObject (при условии использования CoCreateInstance). Но это конечно дело тех, кто придумал COM-объекты. Меня это щас мало интересует, это их дела. Просто такой вот фактик.
Я ведь так понимаю, что DllGetClassObject нужна, чтобы мы там вручную могли что-то написать. А если оно автоматом всё делается, то... вот
волосы дыбом. вы не получите ничего если DllGetClassObject не отрабатывает корректно. вы можете 100 раз обманывать систему возвращая S_OK, но никаких объектов из воздуха не создастся - они генерируются именно фабрикой которую система не может получить ниоткуда кроме как из DllGetClassObject. логи получаются той самой надписью которая вас напугала. вот здесь
https://www.cyberforum.ru/com-... 63368.html
лежит com_server_test (clear).rar - играйте с ним и глядите что происходит
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,702
26.03.2013, 23:26  [ТС]
Был неправ.

Добавлено через 4 часа 13 минут
А вот три других аргумента - в точности те, которые передаются системой функции сервера DllGetClassObject.
через несколько глав
На самом деле, принимая на вход CLSID-IID, CoCreateInstance последовательно вызывает GoGetClassObject с аргументами CLSID-IClassFactory
а ты мучься...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.03.2013, 23:26
Помогаю со студенческими работами здесь

Аргументы функции
Добрый день. Столкнулся с проблемой передачи аргументов в функцию. У меня есть матрица, которую я хочу как-то изменить внутри функции....

Аргументы функции
Добрый вечер! Сразу по делу: int func(char s) {....} int main { char s; // s-символьная строка func(s); }

C++ аргументы функции
Извиняюсь за дилетантский вопрос. Допустим нужно передать string address = argv string port = argv; В addres...

Аргументы функции
Программа должна вычислять x-e число Фибоначчи по mod y. Вылетает ошибка, что передано слишком мало аргументов. Объясните недалекому...

Аргументы у функции
void String(int i, int j, int N, double a) И компилятор студии 2010 выдает следующие ошибки: 1&gt;Hello.cpp(48): error C2057: expected...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru