Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.09.21;
Скачать: [xml.tar.bz2];

Вниз

Структура из DLL   Найти похожие ветки 

 
9899100   (2008-08-08 12:12) [0]

описана структура
загружаю DLL
вызываю процедуру параметром которой передаеться указатель на переменную типа структура
все намана структура заполняеться и все хорошо
но когда выгружаеться DLL
то переменная теряет все значения причем становиться вообще Inacessible Value

как передать структуру из DLL так чтобы данные сохранились после того как DLL будет выгружена????


 
DVM ©   (2008-08-08 12:16) [1]

Структуру покажи, там что есть поля-указатели что ли?


 
9899100   (2008-08-08 12:16) [2]

попробовал командой MOVE  переписать переданную структуру в другую переменную..... переписывает но все равно когда выгружаю DLL теряеться её значение :(


 
Сергей М. ©   (2008-08-08 12:17) [3]


> Inacessible Value


Это отказ, характерный для отладчика, когда контролируемое тобой значение выходит из текущей области видимости. Не более того.

К сохранению каких-то ьтам данных это сообщение не имеет отношения.


 
9899100   (2008-08-08 12:18) [4]

вот такая вот структура
передаеться перменная типа PProgramm

Type PProgramm=^TProgramm
    TProgramm=record
      name:String;
      Version:String;
    end;


 
Сергей М. ©   (2008-08-08 12:19) [5]

Я же тебе уже указал на грабли в

http://delphimaster.net/view/2-1218102039/

А ты не внемлешь)


 
9899100   (2008-08-08 12:19) [6]

>>Сергей М. ©
это в отладчике ессесно
так программа выдет ессесно ошбку


 
Medbe}I{onok XML ©   (2008-08-08 12:20) [7]

строки остались в длл, мувом переносятся указатели, которые протухают после выгрузки длл.


 
Сергей М. ©   (2008-08-08 12:21) [8]


> 9899100   (08.08.08 12:19) [6]


> программа выдет ессесно ошбку


Ты в [5] вник ?


 
9899100   (2008-08-08 12:23) [9]

>> Сергей М. ©
ессесно
и я вижу где теряеться значение
оно теряеться когда я делаю Freelibrary
и это тоже понятно
отсюда и вопрос
"как передать структуру из DLL так чтобы данные сохранились после того как DLL будет выгружена????"


 
9899100   (2008-08-08 12:25) [10]

>>Medbe}I{onok XML
тупо копировать каждую строку??
это не красиво :)

может както изменить структуру чтобы это были не указатели а именно данные


 
Сергей М. ©   (2008-08-08 12:29) [11]


> это не красиво


А красиво разве рубить сук, на котором сидишь ?
Именно это ты и делаешь)

Давай уже показывай код..


 
tesseract ©   (2008-08-08 12:29) [12]


> может както изменить структуру чтобы это были не указатели
> а именно данные


string[255]


 
tesseract ©   (2008-08-08 12:29) [13]

Хотя наверно лучше array[255] of char - красивее будет.


 
DVM ©   (2008-08-08 12:29) [14]


> 9899100   (08.08.08 12:25) [10]

TProgramm=record
 Name: Pchar;
 NameLen: integer;
 Version: PChar;
 VersionLen: integer;
end;

Память под строки надо выделять НЕ В ДЛЛ. Если функция длл видит, что выделенной памяти недостаточно, то пусть возвращает ошибку или заполняет какое поле в структуре требуемыми значениями.


 
Medbe}I{onok XML ©   (2008-08-08 12:30) [15]

структуру ты уже благополучно передал без потерь.


 
DVM ©   (2008-08-08 12:31) [16]


> 9899100   (08.08.08 12:25) [10]

Короче, смотри как WinAPI сделано везде.


 
9899100   (2008-08-08 12:51) [17]

Да уж :)
застрелиться и не встать
интересно всетаки
ну стоит String а не String[255]
как то читал что
по идее Delphi пользует тип стринг сходно с PChar
если явно не указать что он String[255]
ладно
но ведь переменная масив то тоже на самом деле указатель
хотя может я путаю с С++


 
Dennis I. Komarov ©   (2008-08-08 12:56) [18]

Когда создаешь новую DLL почитай внимательно, что в коментариях написано...


 
Сергей М. ©   (2008-08-08 12:57) [19]


> переменная масив то тоже на самом деле указатель


Смотря какой массив ..



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.09.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
2-1218381466
кирилл
2008-08-10 19:17
2008.09.21
подскажите тип


15-1217603510
_koha
2008-08-01 19:11
2008.09.21
Разрабатываю новую утилиту AdminLancher


2-1218178979
3dAnatomy
2008-08-08 11:02
2008.09.21
Гиперссылка в тексте TMemo?


15-1217346194
Кое кто
2008-07-29 19:43
2008.09.21
Свежие шахматные партии


2-1218444544
lod
2008-08-11 12:49
2008.09.21
Компонент DateTimeParker





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский