![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
![]()
Доброго времени суток!
Пытаюсь написать программку в Delphi7, которая будет активно общаться с файлами данных, представленных в текстовой форме. Написал процедуру в DLL для прочтения первого блока файла. Если заполняю его строками массив внутри самой DLL, то все вроде как нормально, а вот при попытке передачи в основной модуль на 4 строке файла возникает ошибка : Access violation at address 400068B8 in module 'rtl70.bpl'. Read of address 000051F9. Как такое возможно забороть? Передается массив array of string, модуль ShareMem включил и в программу и в код DLL. Заранее благодарен! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
![]()
Предъяви код, пожалуйста. (хотя бы самой передачи массива)
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
![]()
Пожалуйста!
В архиве полностью начало проекта. В папке Source находится файл, из которого собственно будут читаться данные. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
![]()
В MainWindowOperate; :
Код:
Код:
Код:
В library TxOper; : Код:
Код:
Последний раз редактировалось Maslan; 25.10.2007 в 16:03. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
![]()
Спасиб!
Попытаю.. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
![]()
Если не трудно, поясни еще что обозначают символы @ и ^ в именах..
И никак не могу понять, зачем нужно объявлять типы Type
TArray=Array of string; PArray=^Tarray; Или стандартное объявление совсем не работает? |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
![]()
C козявками ^ и @ разобрался.. Таки Help полезная штука )).
А Вот с Type че то не могу понять как работать.. Если в нем уже че то объявлено, в моем случае Class TMainForm, то как объявлять остальные, в том числе и TArray? |
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
![]()
И "козявки" и типы нужны для успешной передачи параметров, т.к. если объявить процедуру как Procedure LasCapBlock (FileName: ShortString;LasCaption:Array of integer; StQuan: Byte); дельфя будет ругаться при передаче процедуре переменной тоже типа Array of integer. А тип "указатель на массив" - как думаешь, что проще, передать в DLL и обратно массив неизвестной длины из элементов неизвестной длины или просто указатель на участок памяти, в котором вся эта гадость лежит? Вот то-то и оно
![]() Цитата:
Вариант 1: вставляешь описание новых типов между ключевым словом type и следующей строкой - началом объявления TMainForm; Вариант 2: ишешь end; после Class TMainForm и после этого end; вставляешь. |
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
![]()
Вроде МаНяНа ))
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
![]()
Мдя.. Че то у меня работа на каждом шагу спотыкается. Теперь начал править функции работы с символами. Обозвал function DosToWin (Var Ch:PChar):PChar;
А вот как работать с этими переменными понять не могу. Если взлянете исходник, который ниже, то станет понятно, что из основного модуля в эту функцию должен передаваться один символ из string`а, а назад возвращаться в сдвинутом виде. Вроде все просто, но вот я где то не догоняю как это сделать. Помогите пожалуйста! |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа которая делает кроссворд | Иллидан | Софт | 15 | 02.12.2014 06:34 |
Как создать обратную функцию, которая из уникального номера будет возвращать строку? | SkAndrew | Общие вопросы Delphi | 8 | 06.04.2008 21:10 |
программа, которая выводит на экран одно из данных слов | vados | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 26.10.2007 23:47 |
Скажите функцию которая будет запускать приложение при каждой загрузке винды | pentiumForever | Общие вопросы Delphi | 9 | 08.09.2007 01:54 |
Поиск данных в текстовом файле | BizON | Помощь студентам | 1 | 06.06.2007 18:17 |