Здравствуйте! Есть DLLка. В ней функция на c++: Код (Text): PLUGIN_EXPORT Int x_GivePlayerMoney(int playerid) { int index; int ret; if (!amx_FindPublic(gAMX,"x_GetPlayerMoney",&index)){ amx_Push(gAMX, playerid); amx_Exec(gAMX, &ret, index); } return (int)ret; } Код (Text): ..... EXPORTS x_GivePlayerMoney ...... Так-же есть php файлик: PHP: <?php dl("php_w32api.dll"); w32api_register_function("caller.dll","x_GivePlayerMoney","int"); echo x_GivePlayerMoney(0); ?> PHP Version: 4.2 (Только в этой версии заметил работу w32api_register_function) Вылетает примерно такая ошибка: ---------------------------- Далее PHP 4.3.4 PHP: <?php dl("php_w32api2.dll"); // для этой версии $api = new win32(); $api->RegisterFunction("Int x_GivePlayerMoney(int playerid) From caller.dll", 0); echo $api->x_GivePlayerMoney(0); ?> Ошибка такая-же. С другими dll работает(редко).
Тест на PHP 5.0.4. Подключен FFI. PHP: $windows = new ffi ("[lib='caller.dll'] int xGivePlayerMoney(int playerid);" ); echo $windows->xGivePlayerMoney(0); Ошибка... PHP: $windows = new ffi ("[lib='caller.dll'] double AddNumbers(double a, double b);" ); echo $windows->AddNumbers(33,2); Отлично работает... Получается ошибка в C++? Может кто поможет...