![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]()
Не могу понять почему. На Borland C++ 6.0 написал DLL. Через неё мне нужно нужно прочитать файл и прочитаное вывести в программу.
Код:
Но вот если я пишу в DLL: Код:
#include <vcl.h> #include <windows.h> #include <string.h> Уже парюсь n-й день. Помогите пожалуйста. Последний раз редактировалось profi; 06.01.2009 в 10:43. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 24.07.2008
Сообщений: 279
|
![]()
Нельзя возвращать указатель на локальную переменную.
Ты видел хоть одну WinApi функцию, которая возвращает указатель на символ? Посмотри например как работает GetWindowText() - он работает с буфером Еще вариант передавать в твою func() указатель на CallBack-функцию вида void f(pchar s) (я си плохо знаю, но вроде так), которая будет находиться в основной программе.
Сказал и загрустил от бесспорности своей правоты.
|
![]() |
![]() |
![]() |
#3 | |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 24.07.2008
Сообщений: 279
|
![]()
Я понял что написал,
Я так понял "AnsiString func(int i)" экспортируемая функция внутри dll и используется внешней программой, если нет, то я не прав. А в чем именно выражается "не читаеся"?
Сказал и загрустил от бесспорности своей правоты.
|
![]() |
![]() |
![]() |
#5 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]()
Вы правы, она импортируется программой-клиентом, я просто в ней не могу открыть и прочитать файл. Вот и все проблема. AnsiString func(int i) - это функция принимает i т.е. она в программе исспользуется в цикле for. Например так ей передаються параметры:
for(int i=0;i<3;i++) func(i); |
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 24.07.2008
Сообщений: 279
|
![]()
Ты не удалил то что тебе писали когда ты создал проект dll?
Цитата:
А насчет не открывается что пишет? "Connot Open file..." или что? Попробуй написать абсолютный путь к txt файлу. А вообще это варварство в цикле столько раз создавать и удалять объекты. И переделай функцию.
Сказал и загрустил от бесспорности своей правоты.
Последний раз редактировалось 0nni; 06.01.2009 в 23:55. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Глобальный хук. Проблема с dll =\\ | Zeraim | Win Api | 11 | 19.12.2008 00:18 |
Проблема с dll( | DM_bite | Помощь студентам | 10 | 31.07.2008 16:05 |
И ещё проблема с DLL | Altera | Общие вопросы Delphi | 7 | 25.06.2008 23:45 |
Проблема с путями к БД и *.dll | honor | БД в Delphi | 5 | 25.01.2008 08:54 |