|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.10.2007, 14:06 | #1 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
Работа с DLL - программа, которая будет общаться с файлами данных, представленных в текстовом виде
Доброго времени суток!
Пытаюсь написать программку в Delphi7, которая будет активно общаться с файлами данных, представленных в текстовой форме. Написал процедуру в DLL для прочтения первого блока файла. Если заполняю его строками массив внутри самой DLL, то все вроде как нормально, а вот при попытке передачи в основной модуль на 4 строке файла возникает ошибка : Access violation at address 400068B8 in module 'rtl70.bpl'. Read of address 000051F9. Как такое возможно забороть? Передается массив array of string, модуль ShareMem включил и в программу и в код DLL. Заранее благодарен! |
25.10.2007, 14:27 | #2 |
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
Предъяви код, пожалуйста. (хотя бы самой передачи массива)
|
25.10.2007, 14:56 | #3 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
Пожалуйста!
В архиве полностью начало проекта. В папке Source находится файл, из которого собственно будут читаться данные. |
25.10.2007, 16:00 | #4 |
Форумчанин
Регистрация: 15.10.2007
Сообщений: 147
|
В MainWindowOperate; :
Код:
Код:
Код:
В library TxOper; : Код:
Код:
Последний раз редактировалось Maslan; 25.10.2007 в 16:03. |
25.10.2007, 21:17 | #5 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
Спасиб!
Попытаю.. |
25.10.2007, 21:20 | #6 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
Если не трудно, поясни еще что обозначают символы @ и ^ в именах..
И никак не могу понять, зачем нужно объявлять типы Type
TArray=Array of string; PArray=^Tarray; Или стандартное объявление совсем не работает? |
26.10.2007, 09:21 | #7 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
C козявками ^ и @ разобрался.. Таки Help полезная штука )).
А Вот с Type че то не могу понять как работать.. Если в нем уже че то объявлено, в моем случае Class TMainForm, то как объявлять остальные, в том числе и TArray? |
26.10.2007, 10:40 | #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; вставляешь. |
|
26.10.2007, 14:57 | #9 |
Пользователь
Регистрация: 25.10.2007
Сообщений: 41
|
Вроде МаНяНа ))
|
29.10.2007, 08:23 | #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 |