ну имя длл-ки и ф-ции узнаешь в процессе программы, поэтому через GetProcAddress получишь её адрес(указатель соответственно), потом, наверное, можно применить ассемблерную вставку, где в цикле с нужным кол-вом циклов делается push переменных и в конце call ProcAddress. допустим входные переменные пишем в массив var[i].
ну как-то так:
lea eax,var[0]
mov ecx, NumVars
loop1: push eax // в данном случае пушаться не сами переменные, а поинтеры на них. если надо сами переменные, то писать push [eax]
add eax,4 //4 байта размер интежера/дворда
loop loop1
call ProcAddress
//в еах будет лежать возвращенное ф-цией значение.
не отвечаю за работоспособность этого кода, т. к. слабо знаком с синтаксисом дельфовского ассемблера.
ЗЫ и правда 5 баллов за вопрос. хто найдёт как это без асма сделать - тот маладэц!
|