Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Внизпрередача строк из Dll в программу. Найти похожие ветки
← →
bloodman © (2004-07-22 18:41) [0]Зная, что вопрос уже всплывал на форуме много раз, но у меня немного другое направление этого вопроса:
Мне нужно передать запись , состоящую из масивов строк:
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. В чем Ошибка?
← →
Суслик © (2004-07-22 18:44) [1]я так понял fmakebutons = buts?
а как fmakebutons описан?
← →
VMcL © (2004-07-22 18:44) [2]>>bloodman © (22.07.04 18:41)
>Зная, что вопрос уже всплывал на форуме много раз, но у меня немного другое направление этого вопроса
Самое что ни на есть рядовое направление такого рода вопросов.
Память для PChar кто будет выделять и освобождать?
← →
Subdigger (2004-07-22 18:46) [3]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;
← →
bloodman © (2004-07-22 18:54) [4]Суслик © (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 ???
← →
bloodman © (2004-07-22 19:22) [5]И где мне выделять память в прграмме, или в длл,или и таам и там
??
← →
Reindeer Moss Eater © (2004-07-22 19:23) [6]Там где тебе больше нравится
← →
Palladin © (2004-07-22 19:24) [7]Пусть Word выделяет...
← →
Суслик © (2004-07-22 19:25) [8]
> таам и там
и можно без хлеба.
поддерживаю 6 - только выработай стандарт и следуй ему - либо там, либо тут.
← →
Dimaxx (2004-07-22 20:56) [9]Используй shortstring - его можно безболезненно использовать, если прога и либа твои. Если прога/либа чужая, то только через pchar.
← →
Акакий (2004-07-22 21:30) [10]Удалено модератором
← →
bloodman © (2004-07-22 23:19) [11]Я уже решил проблему, нужно было просто написать так:
function Buts(var btN:PChar;btn:TBtAdd):boolean;stdcall;
← →
bloodman © (2004-07-22 23:20) [12]function Buts(var btN:PChar;var btn:TBtAdd):boolean;stdcall;
вот так .
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.031 c