В Delphi другая конвенция вызовов, параметры функции в регистрах, а не на стеке. Плюс может быть другая работа со стеком. В C/C++ - stdcall если я не ошибаюсь, параметры строго на стеке. Вот и получается что-то не то. Правильно погуглить или не использовать Delphi, поскольку подводных камней может быть еще очень и очень много.