![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
прередача строк из Dll в программу. [D6, Win2k]
bloodman © (2004-07-22 18:41:00)Зная, что вопрос уже всплывал на форуме много раз, но у меня немного другое направление этого вопроса:
Мне нужно передать запись , состоящую из масивов строк:
TBtAdd = record
Names: array [0..20] of PChar;
NamesOfFunc: array [0..20] of PChar;
Count: integer;
end;
Делаю так:
function Buts(var btN:PChar):TBtAdd;stdcall;
var
b : TBtAdd;
begin
btN:=PChar('gd');
b.Names[0]:= PChar('fds');
b.Count:=1;
b.NamesOfFunc[0]:=PChar('Bo');
result:=b;
end;
из программы вызываю так:
var
but : TBtAdd;
butName : PChar;
...
but:=FMakeButons(butName);
впрочем это не важно.
Дело в том что на строчке result:=b вылезает AV. В чем Ошибка?
bloodman (2004-07-22 23:20:00) [1]function Buts(var btN:PChar;var btn:TBtAdd):boolean;stdcall;
вот так .
bloodman (2004-07-22 23:19:00) [2]Я уже решил проблему, нужно было просто написать так:
function Buts(var btN:PChar;btn:TBtAdd):boolean;stdcall;
Акакий (2004-07-22 21:30:00) [3]Удалено модератором
Dimaxx (2004-07-22 20:56:00) [4]Используй shortstring - его можно безболезненно использовать, если прога и либа твои. Если прога/либа чужая, то только через pchar.
Суслик (2004-07-22 19:25:00) [5]
> таам и там
и можно без хлеба.
поддерживаю 6 - только выработай стандарт и следуй ему - либо там, либо тут.
Palladin (2004-07-22 19:24:00) [6]Пусть Word выделяет...
Reindeer Moss Eater (2004-07-22 19:23:00) [7]Там где тебе больше нравится
bloodman (2004-07-22 19:22:00) [8]И где мне выделять память в прграмме, или в длл,или и таам и там
??
bloodman (2004-07-22 18:54:00) [9]Суслик © (22.07.04 18:44) [1]
FMakeButons=function(var btnName:PChar):TBtAdd;stdcall;
Subdigger (22.07.04 18:46) [3]
Можно и так это я для подстраховки , когда искал причину AV.
VMcL © (22.07.04 18:44) [2]
используя realloc ???
Subdigger (2004-07-22 18:46:00) [10]a почему не :
function Buts(var btN:PChar):TBtAdd;stdcall;
begin
btN:=PChar('gd');
result.Names[0]:= PChar('fds');
result.Count:=1;
result.NamesOfFunc[0]:=PChar('Bo');
end;
Суслик (2004-07-22 18:44:00) [11]я так понял fmakebutons = buts?
а как fmakebutons описан?
VMcL (2004-07-22 18:44:00) [12]>> bloodman © (22.07.04 18:41)
> Зная, что вопрос уже всплывал на форуме много раз, но у меня немного другое направление этого вопроса
Самое что ни на есть рядовое направление такого рода вопросов.
Память для PChar кто будет выделять и освобождать?