Вот спасибо за ключик.
а то что функция изначально написана на Паскале, для ее вызова мне нужно поменять сиснтаксии на аналагичный сишный что ли? Как мне изменить ProcAddr:Pointer. Как я знаю это некиф аналог указателей.Как с ним быть?
эээ.. что то я поторопился с ответом.. не всё так просто... вроде, у паскаля и си разные последовательности заталкивания в стэк аргументов для функции.. и вытаскивают вроде по разному... где то я таблицу видел сравнения. А вообще, не рекомендую очень очень это делать - ибо ошибиться очень просто - перепишите функцию на Си, или исходников нет ? В любом случае просто так вы не подцепите её... гуглируйте - может уже есть решение.
Попробуй взять IDA - насколько мне помнится он умеет декомпилировать объектники.
Pointer это указатель. Вообще известно что делает эта функция? Судя по названию второго агрумента она принимает указатель на функцию.
Если есть возможность выложи куда-нибудь объектник, я утром грузанусь в Винду и посмотрю в IDA.
в принципе, если перед определением функции указать stdcall, то параметры в нее будут передаваться в прямом порядке, т.е. как раз так как на паскале. А с возвратом никаких проблем быть не должно, т.к. больше одного параметра все равно не вернешь
Появились сомнения по поводу того на чем он написан. Теперь рассматриваю 2 варианта:либо он написан на Pascal либо на Fortran.
в принципе, если перед определением функции указать stdcall, то параметры в нее будут передаваться в прямом порядке, т.е. как раз так как на паскале. А с возвратом никаких проблем быть не должно, т.к. больше одного параметра все равно не вернешь
то после компиляции при работе программы в стэк сперва засылается b а потом a. Так принято у С. В паскале же - прямой порядок, т.е. сперва в стэк будет загоняться a, а потом b.
Директива stdcall (или может быть __stdcall) - меняет порядок засылки аргументов для функции на прямой.