![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Опять про DLL Delphi для C++ Builder [D5, D6, Win95/98, NT4, Win2k]
S@shka © (2002-05-15 22:01:00)Народ нужен грамотный ответ
Создаю библиотеку DLL в Delphi 6 для использования ее функций в последствии в C++ Builder 5 для примера текст такой
< library mydll.dll
function TestInt (x,y:Integer):Integer; stdcall;
begin TestInt:=x+y; end;
function TestStr (a:String):String; stdcall;
begin TestStr:=a+" bla-bla-bla"; end;
exports
TestInt,TestStr;
begin
end.>
Как теперь статически или динамически исп. функции в C++ Builder
Если динамически типа...
typedef (*pf)(int,int);
hwInst=LoadLibrary("mydll.dll");
....
if (hwInst)
{
pf pfunc = (pf) GetProcAddres (hwInst,"TestInst"); //tipa
if (pfunc)
{
int b = (pfunc)(3,4);
}
}
то почему то один раз функция вызывается нормально, но если сразу вызвать еще эту же или другую то возникает исключение EAccessViolation (уже задолбало)
А как делать нигде толком найте не могу
Please HELP HELP HELP HELP HELP HELP HELP HELP HELP HELP
Игорь Шевченко (2002-05-16 13:02:00) [1]NailS © (16.05.02 12:51)
Тьфу, слона-то я и не приметил :-))
С уважением,
NailS (2002-05-16 12:51:00) [2]Дык попробуй
typedef _stdcall (*pf)(int,int);
Игорь Шевченко (2002-05-16 12:42:00) [3]S@shka (16.05.02 12:14)
А что отладчик говорит?
S@shka (2002-05-16 12:36:00) [4]2 Nails
typedef (*pf)(int,int);
NailS (2002-05-16 12:22:00) [5]А pf у тебя тоже stdcall?
S@shka (2002-05-16 12:14:00) [6]да но глюки бывают и в коде когда использую только вызов MyTestInt где типы только целые...
(тоесть вызываю подряд функцию несколько раз) к примеру
....
if (hwInst)
{
pf pfunc = (pf) GetProcAddres (hwInst,"TestInst"); //tipa
if (pfunc)
{
int b = (pfunc)(3,4);
...Memo1->Lines->Add (IntToStr(b));
b = (pfunc)(3,0);
...Memo1->Lines->Add (IntToStr(b));
b = (pfunc)(3,-);
...Memo1->Lines->Add (IntToStr(b));
}
Игорь Шевченко (2002-05-16 12:08:00) [7]S@shka (16.05.02 12:03)
Не использовать String, к примеру. Использовать PChar
С уважением,
S@shka (2002-05-16 12:03:00) [8]Неужели никто ничего.....