Heim >Backend-Entwicklung >PHP-Tutorial >php 调用 C++ dll,该怎么解决

php 调用 C++ dll,该怎么解决

WBOY
WBOYOriginal
2016-06-13 10:51:17984Durchsuche

php 调用 C++ dll
动态库中要调用的函数

C/C++ code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->extern "C" int __stdcall GameRegister(char* szSystemInfo, char *szRegCode, char *szLicense);


PHP代码
PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php $dw = new Com("DynamicWrapper");                $dw->Register("EducationGameRegister.dll", "GameRegister", 'i=sss', "f=s", "r=u");                                 $reg_code = "";                $ch = $dw->GameRegister("P2G9YFWGZW68G","2597367cea95b2cf0aace3bd5059c33e",&$reg_code);                                echo "Return Value:".$ch;                echo "Register Code:".$reg_code;                ?>


运行时出现下面的错误: 
Fatal error: Uncaught exception 'com_exception' with message 'Error [0x80070057] 参数不正确。 ' in D:\WAMP\WWW\index.php:11 Stack trace: #0 D:\WAMP\WWW\index.php(11): com->Register('EducationGameRe...', 'GameRegister', 'i=sss', 'f=s', 'r=l') #1 {main} thrown in D:\WAMP\WWW\index.php on line 11

初次接触PHP,大家帮我看一下,谢谢了!

------解决方案--------------------
原型要求参数是指针,而 com 是不能传递指针的
------解决方案--------------------
$ch = $dw->GameRegister("P2G9YFWGZW68G","2597367cea95b2cf0aace3bd5059c33e",$reg_code);
這樣試試
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:关于referer的有关问题Nächster Artikel:Appache RewriteRule有关问题