передача списка строк из длл в екзешник
вот заморочился. Никак не соображу, тем более что вечер. Мне нужно получить список компаний из бд. Запрос к бд выполняется в длл. Он возвращает список компаний который надо передать в исполняемый файл. компоновка динамическая. Подскажите грамотный способ решения проблемы. Код пока дать не могу ибо пишу с мобилы. Завтра может смогу если до интернета доберусь
Динамическая? Я уже сам забыл как это.. вечер, башка не варит! Да еще наполовину больной. Короче если менеджер памяти разделяемый - то передавай стринглистом или массивом стрингов - как хошь. Если не разделяемый - ну тогда или массивом PChar-ов, или одним double-null-terminated массивом каким-нить.
Еще видел у какой то функции от MS. Передача Pchar, но в качестве раздилителя используется #0 а в качестве конца списка #0#0. А возвращать нужно только через заранее выделенный массив.
это вот оно самое. Имя функции не припомнишь?
Вспомнил - SHFileOperation(). Поправка, там pChar передается внутри структуры, но думаю это не существенно.
спасибо. Попробуйу
Еще GetOpenFileName(), тоже через структуру. Только зачем тебе эти функции? Они же не разделяют данный тобой массив на строки и не собирают его? Просто посмотреть как оно?
не знаю. Еще не попробовал. Подумал кстати, что возможно проще передать массив указателей на массив строк. Тоже надо будет попробовать.
Цитата: Washington
Подумал кстати, что возможно проще передать массив указателей на массив строк
Да, только пусть принимающая сторона сразу же себе их содержимое локально копирует.
Цитата: Washington
не знаю. Еще не попробовал. Подумал кстати, что возможно проще передать массив указателей на массив строк. Тоже надо будет попробовать.
Идеальный вариант (баз шаремема):
ДЛЛ в цикле проходит по всем строкам и передает каждую в функцию обратного вызова. В функции мы копируем строку и засовываем кудато-то еще, в нам нужное место.
ладно, пока тема пусть висит, как решу, отпишусь. ща чота както время на это нет.
гхм. че т без подключения ShareMem тупо передал StringList и проканало. :)
Это канает. Но до поры до времени. Ошибки полезут в самый неподходящий момент. Я уже это где-то описывал. Но походу на другом форуме
явно на другом. прикол как выяснилось в том, что у меня билд с рантайм пакетами. поэтому все должно грамотно канать. ))
А, если с рантайм-пакетами то шаремем нафик не нужен, усе окей буит :)
на всякий случай шаремему оставил, но вообще то и без ней запускалось. ))