Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с VC++ 6.0 и Matlab (dll), проблема с 0xC0000005 
V
    Опции темы
gromo
  Дата 2.9.2009, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



У меня проблема: при обращении/вызове dll-файла, в ответ появляется ошибка 0xC0000005. Пихал в разные каталоги, системные в том числе, не видит.
dll создан в matlab.
если кто-то сталкивался, помогите, очень нужно.

Заранее спасибо!
PM MAIL   Вверх
andrew_121
Дата 2.9.2009, 02:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 2
Всего: 33



Цитата(gromo @  2.9.2009,  01:35 Найти цитируемый пост)
при обращении/вызове

что это значит?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
gromo
Дата 2.9.2009, 02:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



на этапе инициализации появляется ошибка 0xC0000005.
т.е. dll-файл не виден, хотя он находится в каталоге с приложением
PM MAIL   Вверх
andrew_121
Дата 2.9.2009, 04:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 2
Всего: 33



подключаешь как - динамически, статически?

Это сообщение отредактировал(а) andrew_121 - 2.9.2009, 04:02


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
gromo
Дата 2.9.2009, 04:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



чесно говоря сам до конца не понял, похоже всётаки статически
Листинг:
Код

/*----------------------------------------------------------
* Имя файла: MatlabPlotdll.c
* Описание: вызывает DLL, созданную посредством
* Matlab compiler 2.1, для построения графика
-----------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "dataplotlib.h"
#define PI 3.14159
double data_array[200];
FILE* fp;
void main()
{
int i;
fp = fopen("c:\\data\\dlldata.txt", "w "); // В этом каталоге хранятся данные
if(fp)
{
for ( i = 0; i < 200; i ++)
{
data_array[i] = 10 * sin( ( 2 * PI / 200) * i );
fprintf( fp, " %f ", data_array[i]);
}
fclose( fp );
// Следующая функция вызывается для инициализации dataplotdll. Эта функция создается посредством Matlab Compiler и помещается в dataplotlib.dll
dataplotlibInitialize(); //********** Tут появляется ошибка!!!!!
// Данная функция обеспечивает доступ к DLL, созданной посредством Matlab Compiler
mlfDataplotdll();
// Приведенный ниже вызов завершает работу dataplotdll, созданной посредством Matlab Compiler и находящейся в dataplotlib.dll
dataplotlibTerminate();
return;
}
else
printf("");
}

PM MAIL   Вверх
Earnest
Дата 2.9.2009, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 33
Всего: 183



0xC0000005 - это ошибка доступа по невалидному адресу. Библиотека явно подключается динамически в
dataplotlibInitialize(); Возможна какая-то нестыковка по выравниванию, специцикации вызова и т.д. Внимательно почитай документацию, попробуй собрать примеры, а потом их потихоньку изменяй. 


--------------------
...
PM   Вверх
smoke_man
Дата 2.9.2009, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: 5
Всего: 17



Когда библиотеку собирал какие ключи компиляции использовал у mcc? И версия Matlab какая?


--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
gromo
Дата 4.9.2009, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



mcc -B sgl -t -W libhg:dataplotlib -T link:lib dataplotdll.m

Добавлено через 1 минуту и 45 секунд
MatLab 6.5
PM MAIL   Вверх
andrew_121
Дата 5.9.2009, 03:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 2
Всего: 33



Здесь хороший гайд по динамическому подключению длл.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
gromo
Дата 5.9.2009, 06:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



всем огромное спасибо!
Проблему удалось устранить!
PM MAIL   Вверх
andrew_121
Дата 5.9.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 2
Всего: 33



Цитата(gromo @  5.9.2009,  06:07 Найти цитируемый пост)
Проблему удалось устранить! 

На так поделись с присутствующими, способом решения.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.