Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 23.05.2012
Сообщений: 16

Ошибка ДЛЛ для связи весового контроллера с ПК

23.05.2012, 11:09. Показов 3924. Ответов 36
Метки нет (Все метки)

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

Передо мной поставлена задача написания программы для связи весового контроллера с ПК через СОМ-порт.
Мне предоставлена готовая DLL-библиотека(без исходника) для связи с ПК с контроллером.
Программа должна вести учет взвешиваний, но суть не в этом... Я никак не могу разобратться с DLL. То есть как бы все просто... Есть 3 функции для работы с весами(контроллером). Для регистрации весов, для получения мгновенного веса и для получения стабильного веса.

С документации библотеки:
Scales_Register
Регистрация весов по имени.
BOOL Scales_Register
(INLPCTSTRp_szName,
INEScalesTypep_uScalesType,
INLPCTSTRp_szPortName,
INEBaudRatep_uBaudRate,
INEDataBitsp_uDataBits,
INEParityp_uParity,
INEStopBitsp_uStopBits,
INBYTEp_uAddress,
INLPCTSTRp_szLicenseInfo,
OUTLPTSTRp_szErrorTextBuffer,
IN UINTp_uErrorTextBufferLength
)
Параметры.
p_szName строковый параметр, название контроллера, уникальная в пределах
программы, выбирается программистом или пользователем.
p_uScalesTypeчисловий параметр, код типа весов:
1 - Metler Toledo по спецификации SICS;
2 - Metler Toledo по спецификации COUGAR (режим выдачи
данных по запросу Host Mode)
3 - Metler Toledo по спецификации PT65S;
4 - Metler Toledo по спецификации COUGAR VS (режим
непрерывной выдачи данных Continuous Mode)
17 - HBM WE211018 - HBM AD10x33 - SysTec IT3000
p_szPortNameрядковий параметр, название последовательного порта с двоеточием в
конце или без нее, напр. "COM1" или "COM2:". Зависит от
порту компьютера, к которому подключено устройство.
p_uBaudRateчисловий параметр, скорость передачи порта, зависит от
настроек контроллера.
p_uDataBitsчисловий параметр, количество бит данных в одном байте,

зависит от настроек контроллера.
p_uParityчисловий параметр, режим проверки четности, зависит от
настроек контроллера:
0 - без проверки четности;
1 - проверка на нечетность;
2 - проверка на четность.
p_uStopBitsчисловий параметр, количество конечных битов, зависит от
настроек контроллера:
0 - один конечный бит;
1 - полтора конечных биты;
2 - два конечных биты.
p_uAddressчисловий параметр, адрес контроллера в сети,
определяется настройками контроллера.
p_szLicenseInfoрядковий параметр, ключ регистрации контроллера,
выдается производителем.
Описание.
Функция регистрирует веса по уникальному имени. По этому имени дальнейшем обращаются
другие функции. Все остальные функции работы с весами используют информацию,
заданную при регистрации.
2.1.2 Scales_GetImmediateValue
Получение мгновенного значения веса.
BOOL Scales_GetImmediateValue
(INLPCTSTRp_szName,
OUTDOUBLE & p_uValue,
OUTLPTSTRp_szErrorTextBuffer,
IN UINTp_uErrorTextBufferLength
)
Параметры.
p_szNameназва контроллера, которая была задана при регистрации.
p_uValueвидкритий параметр, через который возвращается значение веса.
Описание.
Функция возвращает текущее (мгновенное) значение веса. Если весовой контроллер
оборудован индикатором, то это значение совпадает с текущим значением
индикатора. Значение может быть, а может не быть стабилизированным. Для
гарантированного получения стабилизированного значения используйте функцию
Scales_GetStableValue.
2.1.3 Scales_GetStableValue
Получение стабилизированного значения веса.

BOOL Scales_GetStableValue
(INLPCTSTRp_szName,
OUTDOUBLE & p_uValue,
OUTLPTSTRp_szErrorTextBuffer,
IN UINTp_uErrorTextBufferLength
)
Параметры.
p_szNameназва контроллера, которая была задана при регистрации.
p_uValueвидкритий параметр, через который возвращается значение веса.


Код компилируется. Проблема в том, что у меня постоянно выбивает ошибку памяти Access Violation at Adress... при обращении к функциям. Выбивает ошибку на переменной p_szErrorTextBuffer. И выбивает в основном на функции Scales_GetImmidiateWeightr(...). Вот кусок кода с функциями:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TMainForm::sButton1Click(TObject *Sender)
{
int p_uScalesType=33;
double p_uValue;
int p_uErrorTextBufferLegth=100;
char t;
LPSTR p_szErrorTextBuffer="";
if (Scales_Register("Test Scales", p_uScalesType, "COM3", 9600, 8, 0, 0, 1, "", p_szErrorTextBuffer, p_uErrorTextBufferLegth)==false)
{
if (Scales_GetImmediateValue("Test Scales", p_uValue, p_szErrorTextBuffer, p_uErrorTextBufferLegth))// !!!Access Violetion ошибка.
{
        glDigits1->Value=0000;
        ShowMessage(AnsiString("True"));
}
else
ShowMessage(AnsiString("False"));
}
 
ShowMessage(p_szErrorTextBuffer);
 
}
Переменная "p_szErrorTextBuffer" почему-то постоянно пустая...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.05.2012, 11:09
Ответы с готовыми решениями:

Передача процессу функции внедрения длл через другую длл (Очень сложно и не понятно)
Допустим у меня есть dll1.dll и 2 процесса game.exe и calc.exe, мне нужно написать длл т.е. dll2.dll, которая будет внедрятся в calc.exe и...

Написание драйвера для терминала весового оборудования
Добрый день! Есть весы куда заезжает авто,к весам подключен терминал где отображается масса, уже месяц пытаюсь вытянуть данные через с#...

Подгрузка мануал мапом длл из другой длл
Помогите, у меня есть процесс который подгружает в себя 1 бесполезную длл которая никак не влияет на работу этого процесса назовем ее...

36
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
23.05.2012, 12:59
вы должны передавать в функцию указатель на массив указанной (простите за каламбур) длины. если у вас заявлено p_uErrorTextBufferLegth = 100, то почему вы передаете указатель на пустую строку (LPSTR p_szErrorTextBuffer="")?
1
1 / 1 / 0
Регистрация: 23.05.2012
Сообщений: 16
23.05.2012, 13:38  [ТС]
Потому что, как я понял, эту строку должна формировать непосредственно функция самой ДЛЛ библиотеки, указывая на причину ошибки, если таковая есть.

Добавлено через 6 минут
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
23.05.2012, 16:22
она и формирует. в предоставляемом вами буфере. а если вы ей не даете этот буфер она пишет данные непойми куда (туда куда указывает указатель) полагая что на том месте лежит массив длиной в 100 байт. при этом естественно будет ошибка доступа.
1
1 / 1 / 0
Регистрация: 23.05.2012
Сообщений: 16
23.05.2012, 22:19  [ТС]
LPSTR p_szErrorTextBuffer - это мой буфер... Я его указал в парамнтрах функций.

Добавлено через 28 минут
Прописал все таки массив.
C++
1
char p_szErrorTextBuffer[50];
Функция регистрации работает, но при ошибке пишет в массив белеберду всякую, греческие буквы, ноты и т.п.
Но на функции получения веса:
C++
1
Scales_GetImmediateValue("Test Scales", p_uValue, p_szErrorTextBuffer, p_uErrorTextBufferLegth
опять выскакивает Аксесс Виолейшн :-(
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
23.05.2012, 22:36
все-таки меня очень интересует такая деталь: как с одним DLL Вы построили проект с использованием функций этой библиотеки? Можно вкратце... - извлекали LIB, создавали соотв. H файл... - как?!
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
24.05.2012, 09:21
конечно ваш буфер. поэтому он и должен быть выделен вами. функция его не выделяет. во всяком случае я догадываюсь об этом исходя из того что в функцию передается указатель и длинна буфера (если бы выделение памяти под строку ошибки делала функция она принимала бы в качестве параметра указатель на указатель и длина была бы ей не нужна). длина буфера передаваемая в функцию соответствует его фактической длине? то есть не так что бы массив длиной 50 а передаете в функцию длину 100?
1
1 / 1 / 0
Регистрация: 23.05.2012
Сообщений: 16
24.05.2012, 11:29  [ТС]
nick42, да, в Import Type Librrary я добавил DLL. Клас Scales появился. Так же в дистрибутиве библиотеи имелись Хэдер-файли для С++. Вот их "начинка":

ScalesLib.h
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
//================================================================
#ifndef ScalesLib_h
#define ScalesLib_h
//================================================================
 
#include <windows.h>
#include "SerialConstants.h"
 
//================================================================
 
//================================================================
 
#ifdef __cplusplus
    extern "C" {
#endif
 
//================================================================
enum EScalesType
//----------------------------------------------------------------
{
    c_uScalesType_MetlerToledoSics      = 0x01,
    c_uScalesType_MetlerToledoCougar    = 0x02,
    c_uScalesType_MetlerToledoPrint     = 0x03,
    c_uScalesType_MetlerToledoCougarVS  = 0x04,
    c_uScalesType_HbmWe2110             = 0x11,
    c_uScalesType_HbmAd101              = 0x12,
    c_uScalesType_SystecIt3000          = 0x21
};
 
//================================================================
void Scales_Emulate(BOOL p_bEmulationMode);
 
//================================================================
BOOL Scales_ReadIniFile();
 
//================================================================
BOOL Scales_Register
//----------------------------------------------------------------
(   IN  LPCTSTR     p_szName,
    IN  EScalesType p_uScalesType,
    IN  LPCTSTR     p_szPortName,
    IN  EBaudRate   p_uBaudRate,
    IN  EDataBits   p_uDataBits,
    IN  EParity     p_uParity,
    IN  EStopBits   p_uStopBits,
    IN  BYTE        p_uAddress,
    IN  LPCTSTR     p_szLicenseInfo,
    OUT LPTSTR      p_szErrorTextBuffer,
    IN  UINT        p_uErrorTextBufferLength
);
 
//================================================================
BOOL Scales_GetImmediateValue
//----------------------------------------------------------------
(   IN  LPCTSTR     p_szName,
    OUT DOUBLE&     p_uValue,
    OUT LPTSTR      p_szErrorTextBuffer,
    IN  UINT        p_uErrorTextBufferLength
);
 
//================================================================
BOOL Scales_GetStableValue
//----------------------------------------------------------------
(   IN  LPCTSTR     p_szName,
    OUT DOUBLE&     p_uValue,
    OUT LPTSTR      p_szErrorTextBuffer,
    IN  UINT        p_uErrorTextBufferLength
);
 
//================================================================
 
#ifdef __cplusplus
    } // extern "C"
#endif
 
//================================================================
#endif
//================================================================
SerialConstants.h
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
/*
Визначені такі типи:
    EBaudRate
    EDataBits
    EParity
    EStopBits
    EValueType
*/
 
//================================================================
#ifndef SerialConstants_h
#define SerialConstants_h
//================================================================
 
#include <windows.h>
 
//================================================================
enum    EBaudRate
//----------------------------------------------------------------
{
    c_uBaudRate_110     = CBR_110,
    c_uBaudRate_300     = CBR_300,
    c_uBaudRate_600     = CBR_600,
    c_uBaudRate_1200    = CBR_1200,
    c_uBaudRate_2400    = CBR_2400,
    c_uBaudRate_4800    = CBR_4800,
    c_uBaudRate_9600    = CBR_9600,
    c_uBaudRate_14400   = CBR_14400,
    c_uBaudRate_19200   = CBR_19200,
    c_uBaudRate_38400   = CBR_38400,
    c_uBaudRate_57600   = CBR_57600,
    c_uBaudRate_115200  = CBR_115200,
    c_uBaudRate_128000  = CBR_128000,
    c_uBaudRate_256000  = CBR_256000
};
 
//================================================================
enum    EDataBits
//----------------------------------------------------------------
{
    c_uDataBits_5   = 5,
    c_uDataBits_6   = 6,
    c_uDataBits_7   = 7,
    c_uDataBits_8   = 8,
};
 
//================================================================
enum    EParity
//----------------------------------------------------------------
{
    c_uParity_None  = NOPARITY,
    c_uParity_Even  = EVENPARITY,
    c_uParity_Odd   = ODDPARITY,
    c_uParity_Mark  = MARKPARITY,
    c_uParity_Space = SPACEPARITY   
};
 
//================================================================
enum    EStopBits
//----------------------------------------------------------------
{
    c_uStopBits_1   = ONESTOPBIT,
    c_uStopBits_1_5 = ONE5STOPBITS,
    c_uStopBits_2   = TWOSTOPBITS
};
 
//================================================================
#endif
//================================================================
vxg, Конечно же я поставил длину буфера равну длине массива. Т.е.
C++
1
2
int p_uErrorTextBufferLegth=100;
char p_szErrorTextBuffer[100];
Добавлено через 38 минут
Так же в дистрибутиве ДЛЛ имеется пример на VBS, который работает, лично проверял.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
on error resume next
Set oScales = CreateObject("ScalesAx.Scales")
 
call oScales.Register("Test Scales", 33, "COM3  ", 9600, 8, 0, 0, 1, "")
 
while true
    WScript.echo oScales.StableValue("Test Scales")
    
    if Err.Number <> 0 then
        WScript.echo "ERROR-" & Err.Number & ":" & Err.Description & " at [" & Err.Source & "]"
        Err.Clear
    end if
wend
Но суть его до конца понять не могу. Почему в функции не передаются все переменные и откуда берутся переменные Err.Number, Err.Description, Err.Source. "Любимые" переменные текста ошибки и его длины и вовсе тут не передаются.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
24.05.2012, 12:06
я изменил вот так: __
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   EScalesType p_uScalesType = c_uScalesType_SystecIt3000;  // 33
   double p_uValue;
   char t;
   char *p_szErrorTextBuffer ;
   UINT p_uErrorTextBufferLegth=100;
   if (Scales_Register("Test Scales", p_uScalesType, "COM3", c_uBaudRate_9600,
       c_uDataBits_8, c_uParity_None, c_uStopBits_1, 0 , "",
      p_szErrorTextBuffer, p_uErrorTextBufferLegth)==false)
   {
     if (Scales_GetImmediateValue(
      "Test Scales", p_uValue, p_szErrorTextBuffer, p_uErrorTextBufferLegth))// !!!Access Violetion îøèáêà.
     {
        glDigits1->Value=0000;
        ShowMessage(AnsiString("True"));
     } ...
но для проверки мне не хватает библиотек (LIB и DLL).
0
1 / 1 / 0
Регистрация: 23.05.2012
Сообщений: 16
24.05.2012, 12:19  [ТС]
При компиляции, после вызова процедуры, программа создает какое-то окно и зависает, компилятор даже не выдает причин ошибки. Должен уходить, вечером отпишу еще, дам скрин. За помощь пока огромное спасибо!
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
24.05.2012, 13:08
если нам не интересна детализация ошибки допускается ли передача в качестве буфера NULL?
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
24.05.2012, 13:39
...а вот, чтобы не гадать, пусть TC приложит наконец-то документацию по библиотеке к теме, а не вырванные из контекста и не оформленные куски текста описания.
0
1 / 1 / 0
Регистрация: 23.05.2012
Сообщений: 16
24.05.2012, 20:46  [ТС]
http://ifolder.ru/30694226 - тут библиотека и документация и примеры.
Правда документация на украинском, но гугл транслейт, если что, переведет все без проблем

Добавлено через 1 минуту
vxg, При НУЛЛ тоже ошибка памяти Аксесс Виолейшн..
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
24.05.2012, 23:53
TC, не смешно.

1- там exe-ник в RAR-е ...проверять, что это самораспаковующийся архив, да на вирусы неохота
2- архивы и картинки принято прикладывать в теме, а не на файлопомойках ...это еще местный модератор сквозь пальцы смотрит, а я пока сомневаюсь, переносить ли тему к себе в раздел или нет

Правда документация на украинском, но гугл транслейт
ну, я с Украины, но форум-то русскоязычный ...да и не часто встретишь технические доки на мове, ибо такого понапереводят хохлы, что впору удавить, уж лучше б на английском оставалось. Но это так, лирическое отступление. Разработка что-ли отечественная?

p.s.: а не подумывали напрямую поработать с весами, минуя DLL-ку? Обмен с ними обычно в аски, включаем утилиту от производителя, ведь должна быть тестовая, снифферим portmon и выделяем запросы, после формируем такие же у себя. Это опять лирическое отступление, доков я пока не увидел.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.05.2012, 01:09
Ваш проект на BCB 6.0 у меня скомпилировался без ошибок и запускается тоже нормально ("проект", конечно, с единственной кнопкой). К проекту подключил библиотеку ScalesDll.lib , но ее пришлось переконвертировать программой coff2omf.exe. Убедиться в работоспособности, понятно, не могу, так как не имею соотв. устройства, да и не вникал в смысл этой библиотеки. Во всяком случае пока никакого обращения к порту СОМ не происходит (да и не должно, мне кажется; все-таки эти Н-файлы неполноценные какие-то; к DLL обращения тоже не происходит. Разбираться надо...).
Вложения
Тип файла: rar 69.RAR (254.7 Кб, 16 просмотров)
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
25.05.2012, 09:22
у меня проходит регистрацию и падает на Scales_GetImmediateValue с сообщением "обратилась к адресу 0". звонить кулибину не пробывали?
0
1 / 1 / 0
Регистрация: 23.05.2012
Сообщений: 16
25.05.2012, 12:10  [ТС]
raxp, разработка местного программиста, потому и на украинском язіке. Основные аспекты я перевел в одном с предыдущих постов. Если нужно, переведу все.
Прощу прощения за несоответствие неких правил форума, ссылок и т.п. Исправлюсь.
На прямую не пробовал. К сожалению, особых идей нету. Связь с контроллером можно вести через Hyper Terminal. Это к слову.
raxp, да, я тоже конвертировал. Извините, что забыл это указать. Кстати долго мучился.
vxg, вот и у меня аналогичная ошибка памяти, которая и стала причиной создания поста.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.05.2012, 18:04
Цитата Сообщение от Sheff(BRC) Посмотреть сообщение
К сожалению, особых идей нету
И все же "другие путя" есть! Похоже, что вся поддержка разрабатывалась на ВизуалВасике, и заголовочный файл оттуда; напрямую в Билдер эту петрушку не перетащишь. Но вот если в Билдере открыть ScalesAx.dll и затем сохранить его как tlb (а это оно и есть...); потом найти в панели кнопочку Register Type Library и нажать, то потом можно проделать следующее: в Project - Import Type Library выбираем "ScalesAx 1.0 Type Library" (она должна там появиться) , указываем тип закладки Samples (или система сама это сделает) - и в этой вкладке появляются два новых компонента: Scales и ScalesSafe. Остается установить их (или его) на форму и начать с ними работать. Вот код на кнопку, который компилируется и даже работает:__
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   double p_uValue;
 
   wchar_t *erbuff = { L"Default\0" };
   wchar_t *sname  = { L"Test Scales\0" };
 
     Scales1->Connect();
     Scales1->Register(sname, 33, L"COM3",9600, 8, 0, 1, 0 ,erbuff);
     p_uValue = Scales1->Get_ImmediateValue(sname);
 
   ShowMessage(FloatToStr(p_uValue));
}
Последовательность действий - по памяти, может чего и забыл. В общем - если очень нужно, то такой подход тоже имеет право на применение... .
(Windows 7 32 ultim. BCB 5.0 )
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
25.05.2012, 18:22
Цитата Сообщение от nick42 Посмотреть сообщение
char *p_szErrorTextBuffer ;
Указатель есть, а выделение памяти?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
26.05.2012, 23:29
Сегодня попробовал и на RAD XE2; похоже - работает (правда, похоже ТС ушел искать счастья в другие палестины; или таки добился работы с той длл-кой). Достаточно установить Scales v1.08 и затем добавить из Import a type library те пару компонентов (см.выше). Во всяком случае сообщения об ошибке подключения программа получает из той злополучной DLL.
Миниатюры
Ошибка ДЛЛ для связи весового контроллера с ПК  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.05.2012, 23:29
Помогаю со студенческими работами здесь

нет связи контроллера Schleicher MCS 20-21 и терминальным эвм DEVIPC MSC Rechnerbox на линуксе
Прошу помощи . С этим оборудованием сталкиваюсь первый раз . Контроллер был дохлый . Заказал бу с германии . Перекинул флэш . Заработал...

Внутреняя ошибка связи или нет связи с удалённым сервером
Данные сообщения выходят при загрузке сайтов и поэтому не могу загрузить ни одну страницу.Подскажите что нужно делать чтоб избавиться от...

Cтранная ошибка в подключении длл (char, wchar_t)
длл подключаю так: HANDLE png_storage = LoadLibrary(&quot;Bmp_Storage.dll&quot;); ошибку выдаёт на этой же строке

Можно с ДЛЛ для MSVC 6 работать из С++ для Нета ?
Добрый день. Вот ссылка на описание АПИ в виде ДЛЛ: http://www.alpari-idc.ru/ru/userguide/mtapi/ Вот описание клиентского АПИ: ...

CDialogEx + dll, После завершения модального диалога (CDialogEx) из длл-библиотеки работа длл-библиотеки прерывается
Добрый день, подскажите, пожалуйста, новичку с++/mfc. Работаю в VS 2010. Есть необходимость разработки длл-библиотеки, которая в своём...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru