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

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

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

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

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

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

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

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

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

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

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

Цитата:
Сообщение от 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
Репутация: 10
По умолчанию

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

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

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

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

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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


11:42.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru