PHP调用C++DLL的问题
用DynamicWrapper方法调用。下载DynamicWrapper.dll到php ext下与windows system32下, $dw = new COM("DynamicWrapper"); $dw-Register("EbUsbApi.dll", "EbCreateDataFile", 'i=sls', "f=s", "r=l"); $ch = $dw-EbCreateDataFile("222",11,"22"); i=descri
用DynamicWrapper方法调用。下载DynamicWrapper.dll到php ext下与windows system32下,
$dw = new COM("DynamicWrapper");
$dw->Register("EbUsbApi.dll", "EbCreateDataFile", 'i=sls', "f=s", "r=l");
$ch = $dw->EbCreateDataFile("222",11,"22");
i=describes the number and data type of the functions parameters
f=type of call _stdcall or _cdecl. So it can work with both MS C++ and Borland C++. Default to _stdcall. If that doesn't work use _cdecl. If that doesn't work good luck!
r=return data type.
Data types are:
const ARGTYPEINFO ArgInfo[] =
{
{'a', sizeof(IDispatch*), VT_DISPATCH}, // a IDispatch*
{'c', sizeof(unsigned char), VT_I4}, // c signed char
{'d', sizeof(double), VT_R8}, // d 8 byte real
{'f', sizeof(float), VT_R4}, // f 4 byte real
{'k', sizeof(IUnknown*), VT_UNKNOWN}, // k IUnknown*
{'h', sizeof(long), VT_I4}, // h HANDLE
{'l', sizeof(long), VT_I4}, // l long
{'p', sizeof(void*), VT_PTR}, // p pointer
{'s', sizeof(BSTR), VT_LPSTR}, // s string
{'t', sizeof(short), VT_I2}, // t short
{'u', sizeof(UINT), VT_UINT}, // u unsigned int
{'w', sizeof(BSTR), VT_LPWSTR}, // w wide string
}
[b]
请教返回值为布尔类型应该选哪个?[/b]
推荐阅读
-
PHP的foreach中使用引用时需要注意的一个问题和解决方法
-
ECshop 迁移到 PHP7版本时遇到的兼容性问题
-
WampServer搭建php环境时遇到的问题汇总
-
PHP中遇到的时区问题解决方法
-
解决php的“It is not safe to rely on the system’s timezone settings”问题
-
php调用nginx的mod_zip模块打包ZIP文件
-
用PHP调用数据库的存贮过程!
-
php中的路径问题与set_include_path使用介绍
-
php的慢速日志引起的Mysql错误问题分析
-
windows下配置apache+php+mysql时出现问题的处理方法