Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 17.12.2016, 00:51   #1
stakan1
 
Регистрация: 17.12.2016
Сообщений: 3
По умолчанию Библиотека (dll) для класса DMatrix

Прошу помощи.

Года полтора назад начал пользоваться классом DMatrix (программирование матриц на C++). На "родном" сайте раньше лежал файл dmatrix.dll, я его подключал к своему проекту. Потом перешел на их исходники на C++, а dll сдуру грохнул. Но там было больше мат. методов. А теперь они эту dll убрали с сайта и не хотят прислать, говорят, там "фсе неправильно". Но мне надо!

Может, у кого завалялось? Был бы очень благодарен, хотя надежда не велика.
stakan1 вне форума Ответить с цитированием
Старый 08.02.2017, 20:44   #2
sanatory
Новичок
Джуниор
 
Регистрация: 08.02.2017
Сообщений: 2
По умолчанию

Про dll не слышал, извините.

У меня тоже вопрос: работает ли этот класс под Embarcadero? На сайте разработчика речь идет о Borland Builder6. Сейчас как раз осваиваю, отлаживаю простой проект с умножением матриц. Каждый раз, когда получается ошибка, начинаю терзаться сомнениями, моя ли это ошибка...

Последний раз редактировалось sanatory; 08.02.2017 в 20:48.
sanatory вне форума Ответить с цитированием
Старый 08.02.2017, 22:34   #3
sanatory
Новичок
Джуниор
 
Регистрация: 08.02.2017
Сообщений: 2
По умолчанию

Вдогонку. Если не секрет, что за методы были в dll?
sanatory вне форума Ответить с цитированием
Старый 10.02.2017, 13:56   #4
stakan1
 
Регистрация: 17.12.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от sanatory Посмотреть сообщение
Про dll не слышал, извините.

У меня тоже вопрос: работает ли этот класс под Embarcadero? На сайте разработчика речь идет о Borland Builder6. Сейчас как раз осваиваю, отлаживаю простой проект с умножением матриц. Каждый раз, когда получается ошибка, начинаю терзаться сомнениями, моя ли это ошибка...
Фраза с сайта "Класс DMatrix разработан на языке C++ (в среде Borland Builder6)" пугает, ага. Мужик, который подсунул мне этот класс, давно перешел на Emb-ro, у него работает.


Цитата:
Сообщение от sanatory Посмотреть сообщение
Вдогонку. Если не секрет, что за методы были в dll?
Приведение к жордановой форме там было. Ну да наплевать, уже сам сделал.
stakan1 вне форума Ответить с цитированием
Старый 16.02.2017, 14:17   #5
stakan1
 
Регистрация: 17.12.2016
Сообщений: 3
По умолчанию

В общем, так. При работе под Embarcadero надо изменить в классе только одну вещь. Там в нескольких местах сделаны сообщения об ошибках с помощью Application->MessageBox("сообщение", "заголовок", MB_OK); . Надо везде исправить на Application->MessageBox(L"сообщение", L"заголовок", MB_OK); , тогда все компилируется и работает.
stakan1 вне форума Ответить с цитированием
Старый 16.03.2018, 14:31   #6
хотьубей
Новичок
Джуниор
 
Регистрация: 16.03.2018
Сообщений: 2
По умолчанию

Не могу понять, зачем в этом классе нужна переменная mMax и какое ей присваивать значение.
хотьубей вне форума Ответить с цитированием
Старый 16.03.2018, 14:54   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,095
По умолчанию

Цитата:
3. Можно динамически-автоматически менять m – актуальную толщину матрицы. Например, при резких изменениях данных логично толщину уменьшать, при стабилизации – увеличивать. Так как мы, вообще говоря, не знаем, на сколько строк может быть увеличена толщина матрицы, логично хранить все строки. На практике хранение всех строк может привести к переполнению памяти, поэтому разумно, все же, вводить некую константу mMax (m ≤ mMax), при достижении которой стираются старые строки. Но так как эта константа достаточно велика, до ее достижения проходит много времени, скажем, несколько минут, в течение которых сохраняются все данные и идет выдача результатов расчетов.
10 документаций
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума Ответить с цитированием
Старый 16.03.2018, 15:53   #8
хотьубей
Новичок
Джуниор
 
Регистрация: 16.03.2018
Сообщений: 2
По умолчанию

Понял, спасибо, пробегал ведь глазами этот абзац, но не врубался. Значит, ставим просто mMax - любое число > размера блока для МНК.
хотьубей вне форума Ответить с цитированием
Старый 13.04.2018, 14:41   #9
ballad
 
Регистрация: 13.04.2018
Сообщений: 7
По умолчанию Ошибка "Access violation" в классе

В мою задачу на вход поступает информация от 2-х устройств. Поэтому сделано 2 нити (Thread), в каждой из которых есть объект класса DMatrix.

Если запускать один (любой) Thread, все работает. Как только запускаю оба потока, через некоторое время (не сразу) выскакивает ошибка "Access violation". Причем Builder затыкается каждый раз на разных строках кода, но только там, где что-то присваивается элементам массива temp.data[][]. Проверял - память под массив выделена, а ошибка все равно вылетает.

У кого-нибудь было такое?
ballad вне форума Ответить с цитированием
Старый 13.04.2018, 15:45   #10
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от ballad Посмотреть сообщение
В мою задачу на вход поступает информация от 2-х устройств. Поэтому сделано 2 нити (Thread), в каждой из которых есть объект класса DMatrix.

Если запускать один (любой) Thread, все работает. Как только запускаю оба потока, через некоторое время (не сразу) выскакивает ошибка "Access violation". Причем Builder затыкается каждый раз на разных строках кода, но только там, где что-то присваивается элементам массива temp.data[][]. Проверял - память под массив выделена, а ошибка все равно вылетает.

У кого-нибудь было такое?
Смотрите код ДЛЛ. Вероятнее всего, она создает какие-то глобальные объекты, к которым вы ломитесь из 2 потоков. У вас все признаки отсутствия синхронизации при доступе к памяти. Кстати, у вас его может не быть (а не в длл).
alexzk вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
dll-библиотека Gul'ka Visual C++ 0 09.01.2014 18:22
Библиотека BytesRoad.Net.FTP.dll для работы с FTP: как реализовать докачку файла E_x C# (си шарп) 2 18.12.2012 14:15
БИБЛИОТЕКА (DLL) kop Помощь студентам 0 03.11.2011 01:33
DLL-библиотека Lisёноk Помощь студентам 2 29.04.2010 22:00