我的知识库是,我可以在PHP得到解决。 我从来没有使用C,C ++,C#或任何编译器的工作。
我从XAMPP 1.7.3,其中采用php 5.3到1.8.1其包括升级:阿帕奇2.4.3的MySQL 5.5.27 PHP 5.4.7
它被安装在Windows 7专业版的Windows XP专业版和Windows Server 2008 R2。 但我想它获得在Windows 7目前的工作。
我升级了,因为我需要Apache和MySQL的出于安全原因,一个新的版本。 我没有选择降级。
我用的是php_printer.dll用于打印的原始数据到打印机的能力:
printer_set_option($handle, PRINTER_MODE, "RAW");
我的代码在PHP 5.3工作得很好,但在PHP 5.4破门。
收到错误后:“致命错误:调用()在〜printer_open未定义功能”。 我检查了php_error_log并收到以下信息。
PHP Warning: PHP Startup: printer: Unable to initialize module
Module compiled with module API=20090626
PHP compiled with module API=20100525
These options need to match
我已经看了好几个小时试图找到一个预编译php_printer.dll为PHP 5.4.7无济于事。 我的结论是,我将不得不从PECL源文件编译它。 pecl.php.net/package/printer
有从来没有这样做之前,我没有任何互联网用户应该做的事情。 我GOOGLE了它,并在这里发现了一些信息: https://wiki.php.net/internals/windows/stepbystepbuild
我花了一整天,但PHP构建工作。 但随后试图首先我试图创建php_printer.dll:
svn co http://svn.php.net/repository/pecl/printer/trunk pecl/printer
但它表示:使用“svn”不被识别为一个内部或外部的命令,可操作的程序或批处理文件。
于是我就从下载的文件自己:svn.php.net/repository/pecl/printer/trunk/并把它们放在:C:\ PHP-SDK \ php54dev \ VC9 \ 86 \ php5.4-201303311430 \分机\打印机
我确信下载库都来自:windows.php.net/downloads/php-sdk/deps/vc9/x86/也只是:DEPS-5.4-VC9-x86.7z
我想一个那么其他的,但是, 每次我收到了以下,当我试图执行nmake时间:
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>nmake
Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
printer.c
ext\printer\printer.c(266) : error C2065: 'pval' : undeclared identifier
UPDATE
我在另一个论坛一些帮助。
通过hackattack142»03. 2013 23:51四月
你好,
打开“printer.c”,代之以“的zval” PVAL“的所有实例,它应该编译。
谢谢Hackattack,一步步接近我希望,
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>buildconf
~
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>configure --disable-all --enable-cli
--enable-printer
~
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>nmake
Microsoft (R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
internal_functions.c
printer.c
Creating library Release_TS\php5ts.lib and object Release_TS\php5ts.exp
Creating library Release_TS\php.lib and object Release_TS\php.exp
SAPI sapi\cli build complete
它似乎编译。 然而; 我无法找到一个printer.dll或php_printer.dll这是我所期待的结果。
在Release_TS \ ext文件夹中有名为打印机的文件夹。 它包含以下文件:printer.obj printer.sbr vc90.idb
我也做了最后一步:
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430>cd Release_TS
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430\Release_TS>php -m
[PHP Modules]
Core
date
ereg
pcre
printer
Reflection
SPL
standard
[Zend Modules]
c:\php-sdk\php54dev\vc9\x86\php5.4-201303311430\Release_TS>
从另一个论坛帮助
configure --disable-all --enable-cli --enable-printer=shared
它的工作和我创建了php_printer.dll然而,当我试图使用它:
在PHP错误日志:[15-APR-2013 15时34分53秒UTC] PHP的警告:PHP启动:无效库(可能不是一个PHP库)在未知 'php_printer.dll' 在线0
我只好抓住5.4.7的文件,因为我是用5.4.15但XAMPP 1.8.1使用5.4.7
http://www.oldapps.com/php_programming_language.php?old_php=8227
并把它放在:C:\ PHP-SDK \ php54dev \ VC9 \ 86 \ PHP-5.4.7
然后把打印机文件在ext文件夹,并做了所有上述过程和:
配置--enable打印机=共享
和它的工作:
PHP版本5.4.7 php_printer.dll
http://pylonx.com/PHP/php_printer_5.4.7.zip