$api->registerfunction("int Get(DWORD bb, DWORD* cc, char* dd From aa.dll");
函数的类型声明不能随意修改
函数的类型声明不能随意修改
解决方案 »
- 关于__set()的问题
- 怎样将print_r结果输出的txt文件里去?
- Php 中怎样正确调用ActiveX控件(ocx)??
- 求解!IE8加载页面问题
- 大家目前用什么php开发框架?
- phpmyadmin2.10配置。
- php中mktime问题,在线给分
- 如何设置为cvs服务器?TortoiseCVS怎么设置?
- 刚刚配置完 apache+php ,遇到问题: ERROR: environment variable TEST_PHP_EXECUTABLE must be set to specify PHP executable!
- 关于url重写
- 用phpmailer发信。收到的都是这样的编码。。。怎么改正呢?谢谢
- 关于SETCOOKIE的难题
char* 是字符串指针,传递时用&$dd
那个cc也是用&$cc
中DWORD*,char*通不过,不带*就补报错!
错误提示:
Fatal error: Function Definition Parse Error: parse error in e:\www\test.php on line 19
但w32api_deftype函数知识用于4.2.0 - 4.2.3那我应该怎么写?
dl("php_w32api.dll");
$api = new win32;$api->registerfunction("int Get (long bb, long &cc, string &dd) From aa.dll");$dd = str_repeat("\0", 100);
$api->Get($bb, $cc, $dd);
echo $dd;
?>
那样用虽然不报错,但返回的值却不正确!api函数应该没问题,同一个库文件我在vb6下就正常!参数值跟在vb6下一个样,但结果就不一样!
不然别人很难根据你的情况来说。
EXTERN_C int WINAPI Get(DWORD bb, DWORD* cc, char* dd);在vb中的调用(正确):
Declare Function Get Lib "aa.DLL" (ByVal bb As Long, ByRef cc As Long, ByVal dd As Any) As Long
$api->Get($bb, $cc, $dd);
echo $cc;
那样调用还是不行
我为这个问题郁闷两天了!
各种类型我都试了!他就是不行!
看来,我必须得换方法了!
好像还有一种方法是用com封装,不知道能不能解决我的这个问题?