我试图通过PHP COM扩展从KERNEL32.DLL执行GetTickCount,但没有成功。我应该使用什么ProgID或类ID来执行GetTickCount?
$com = new COM("?WhatProgID.ID?");
$time = $com->GetTickCount();
在C++中,它看起来像这样:
#include <windows.h>
#include <iostream>
int main(void)
{
std::cout << GetTickCount() << std::endl;
}
使用DynamicWrapper:
- 下载
dynwrap.dll
http://techsupt.winbatch.com/techsupt/dynawrapNt.zip(或此处的其他版本DynaWrap-DynaCall Wrapper): - 解压缩并注册:
regsvr32 dynwrap.dll /c
(如果您愿意,也可以重新编译它)
现在下面的代码应该可以工作了(它对我有效):
$com = new COM("DynamicWrapper");
$com->Register("KERNEL32.DLL", "GetTickCount", "i=l", "f=s", "r=l");
echo $com->GetTickCount(0);
输入参数的说明见Readme.txt
。