PHP调用C++DLL的问题,在线等,急。。。。。。

时间:2022-09-30 14:45:21
用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  
}

请教返回值为布尔类型应该选哪个?

4 个解决方案

#1


{'c', sizeof(unsigned char), VT_I4}, // c signed char 

bool一般大小跟char一样

#2


这个最好到PHP板块去问吧

#3


高人求解释。。。。。。

#4


该回复于2011-03-28 09:47:21被版主删除

#1


{'c', sizeof(unsigned char), VT_I4}, // c signed char 

bool一般大小跟char一样

#2


这个最好到PHP板块去问吧

#3


高人求解释。。。。。。

#4


该回复于2011-03-28 09:47:21被版主删除