Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 4697
Рейтинг: 426
#16: 2012-04-29 22:34:41 ЛС | профиль | цитата
Можно.
карма: 10
0
Ответов: 195
Рейтинг: 5
#17: 2012-04-30 16:45:41 ЛС | профиль | цитата
Целый день пытался разобраться с компонентом просмотрел все примеры и нечего не получилось сделать самому !!! Можно какой то подробный гайд или видео урок буду очень благодари)))
карма: 0

0
Ответов: 5227
Рейтинг: 588
#18: 2012-05-02 06:34:01 ЛС | профиль | цитата
hin4 писал(а):
Можно какой то подробный гайд или видео урок
извольте но это слишком, примеров достаточно
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 258
Рейтинг: -27
#19: 2012-05-03 20:55:19 ЛС | профиль | цитата
Как вызвать функцию через calldllex незагружая dll ?

просто есть некая dll которая после загрузки лазит в памяти(чтото вроде artmoney, только для замены значения для одной игры)
карма: 0

0
Ответов: 5446
Рейтинг: 323
#20: 2012-05-03 21:23:21 ЛС | профиль | цитата
Cubone, никак.
карма: 1

0
Ответов: 258
Рейтинг: -27
#21: 2012-05-05 20:02:58 ЛС | профиль | цитата
а вызвать функцию из dll которая уже загружена в процесс чужой можно?
карма: 0

0
Ответов: 5446
Рейтинг: 323
#22: 2012-05-05 22:37:02 ЛС | профиль | цитата
Cubone, можно, но функция будет исполняться в чужом процессе.
карма: 1

0
Ответов: 258
Рейтинг: -27
#23: 2012-05-11 23:20:38 ЛС | профиль | цитата
Та функция влияет на саму длл, так а как её вызвать, ведь через CallDllEx не получится?

мож хотя б ссылку на делфи код кинуть?
карма: 0

0
Ответов: 1731
Рейтинг: 68
#24: 2012-08-21 16:05:34 ЛС | профиль | цитата
Пытаюсь подключить hiasm.dll
Не спрашивайте зачем мне это, просто учусь подключать либы.
Не получается сделать sdk_init
code_28828.txt
карма: 1

0
файлы: 1code_28828.txt [681B] [532]
Ответов: 1841
Рейтинг: 369
#25: 2012-11-03 23:27:35 ЛС | профиль | цитата
Замечена утечка памяти, при использовании данного элемента, так что будьте осторожны...
------------ Дoбавленo в 23.27:
Нашёл виновника: Param := NewMemoryStream;
Но исправить пока не получается...
карма: 1
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#26: 2012-11-04 00:46:47 ЛС | профиль | цитата
CriDos писал(а):
Param := NewMemoryStream;

Надо найти место, где его уничтожить, лучше перед созданием проверить, нет ли уже созданного.
Типа


if Assigned(Param) then
Param.free
else
Param := NewMemoryStream;
карма: 22

0
Ответов: 1841
Рейтинг: 369
#27: 2012-11-04 01:12:22 ЛС | профиль | цитата
nesco, так уже пробовал делать, но с данным способом результат корректно выдаётся только при первом обращении, при последующих - ничего...

карма: 1
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#28: 2012-11-04 01:45:23 ЛС | профиль | цитата
CriDos писал(а):
так уже пробовал делать, но с данным способом результат корректно выдаётся только при первом обращении

Попробуй вот так тогда


if not Assigned(Param) then
Param := NewMemoryStream;
карма: 22

0
Ответов: 5227
Рейтинг: 588
#29: 2012-11-06 06:23:13 ЛС | профиль | цитата
CriDos, есть результат? Если нет дай тестовую схему где проявляется болячка, попробую исправить.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 1841
Рейтинг: 369
#30: 2012-11-06 13:07:36 ЛС | профиль | цитата
andrestudio,
nesco писал(а):


if not Assigned(Param) then
Param := NewMemoryStream;

Результат аналогичен предыдущему, т.е. нету его, результата...


Вот тестовая схема:


Add(MainForm,2953706,147,84)
{
Width=200
Height=156
Caption="Test"
Position=1
link(onCreate,6780558:doFindID,[])
}
Add(Timer,14232243,114,159)
{
Interval=16
link(onTimer,8716874:doEvent1,[])
}
Add(CallDllEx,1336247,207,226)
{
DLLName="test.dll"
FuncList=#7:test;;i|
Point(doFuncList)
link(onFunc,1361970:doText,[])
}
Add(EnumProcess,6780558,196,91)
{
Point(onFind)
Point(doGetMemoryInfo)
Point(onGetMemoryInfo)
link(ID,7389318:ReadH,[])
link(onGetMemoryInfo,11127876:doStrCat,[])
}
Add(InlineCode,7389318,196,49)
{
VarPoints=#5:ReadH|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,Windows,Messages;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|3: |9: public|45: procedure ReadH(var dt:TData; idx:word);|1: |5: end;|0:|14:implementation|0:|28:procedure THiAsmClass.ReadH;|7: begin|39: dtInteger(dt, GetCurrentProcessId);|6: end;|4:end.|
}
Add(Label,6485872,290,105)
{
Left=5
Top=30
Width=129
Height=17
Caption="Занимаемая память: "
}
Add(Hub,8716874,159,159)
{
OutCount=3
link(onEvent1,6780558:doGetMemoryInfo,[(185,165)(185,118)])
link(onEvent2,10648183:doData,[])
link(onEvent3,1336247:doFuncList,[(185,179)(185,239)])
}
Add(Label,1361970,256,226)
{
Left=65
Top=85
}
Add(CallDllEx,4043074,244,166)
{
DLLName="test.dll"
link(onFunc,14452773:doText,[])
}
Add(Label,14452773,291,166)
{
Left=65
Top=65
}
Add(DoData,10648183,196,166)
{
Data=String(test;;i)
link(onEventData,4043074:doCallFuncStr,[])
}
Add(InfoTip,15500678,189,147)
{
Info=#18:1-й вариант утечки|
Width=148
Height=60
}
Add(InfoTip,1317398,189,210)
{
Info=#18:2-й вариант утечки|
Width=148
Height=60
}
Add(StrCat,11127876,241,105)
{
Str1="Занимаемая память: "
link(onStrCat,6485872:doText,[])
}
Тестовая схема sha: http://dl.dropbox.com/u/6869303/HiAsm/findbugs/dllex/test.sha
Тестовая dll: http://dl.dropbox.com/u/6869303/HiAsm/findbugs/dllex/test.dll
Исходник dll (PB):
ProcedureDLL test() 
  ProcedureReturn Random(100000) 
EndProcedure
Библиотеку можно вообще не подключать, главное обращаться к методам doCallFuncStr или doFuncList и утечка всё-равно будет...
карма: 1
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)