Has anyone ever coded to zp4.dll from php? I can get calls to zp4 functions which do not require a session pointer to work fine, but those that do fail. Below are examples of code that works and code that doesn't.
************* ZP4AllErrors works!!! ZP4Count works!!!! *********
$zp4ffi=<<<EOD
[lib='zp4.dll'] void ZP4AllErrors(char *list);
[lib='zp4.dll'] long ZP4Count(long statenum, long citynum, long strnum);
EOD;
$zp4=new ffi($zp4ffi);
$errors=str_repeat(" ", 1000);
$zp4->ZP4AllErrors(&$errors);
echo "<br>errors=".$errors; // THIS RETURNS A LIST OF ALL ERROR MESSAGES
$states=$zp4->ZP4Count(0, 0, 0);
echo "<br>states=".$states; // THIS RETURNS ‘62’
** ZP4StartSession works!!! ZP4InputOrder does not work!!!! *******
$zp4ffi=<<<EOD
[lib='zp4.dll'] void ZP4StartSession(long sessionptr);
[lib='zp4.dll'] long ZP4InputOrder(long session, char fieldlist);
[lib='zp4.dll'] void ZP4StopSession(long session);
EOD;
$zp4=new ffi($zp4ffi);
$zp4s=0;
$zp4->ZP4StartSession(&$zp4s);
echo "<br>zp4s=".$zp4s; // THIS RETURNS A MEMORY LOCATION
$zp4OrderIn="Address\tZip";
$returnval=$zp4->ZP4InputOrder($zp4s, &$zp4OrderIn);
echo "<br>returnval=".$returnval; // THIS RETURNS ’0’, WHICH INDICATES FAILURE
$zp4->ZP4StopSession($zp4s);