PHP 5.4.7 compilando ext php_printer

Mi base de conocimientos es, puedo moverse en php. Nunca trabajé con C, C ++, C # ni ningún compilador.

Actualicé de XAMPP 1.7.3, que usaba php 5.3, a 1.8.1 que incluye: Apache 2.4.3 MySQL 5.5.27 PHP 5.4.7

Se está instalando en Windows 7 Pro, Windows XP Pro y Windows Server 2008 r2. Pero estoy intentando que funcione en Windows 7 actualmente.

Actualicé porque necesitaba una versión más nueva de Apache y MySQL por razones de seguridad. No tengo la opción de bajar de categoría.

Utilizo el archivo php_printer.dll para imprimir datos sin procesar en la impresora:

printer_set_option($handle, PRINTER_MODE, "RAW");

Mi código funcionó bien en PHP 5.3 pero se rompió en PHP 5.4.

Después de recibir el error: "Error grave: llame a la función indefinida printer_open () en ~". Revisé el php_error_log y recibí la siguiente información.

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

He buscado durante horas tratando de encontrar un php_printer.dll precompilado para PHP 5.4.7 en vano. Llegué a la conclusión de que tendré que compilarlo a partir de archivos de origen en el PECL. pecl.php.net/package/printer

Nunca tuve que hacer esto antes de hacer lo que cualquier usuario de Internet debería hacer. Lo busqué en Google y encontré algo de información aquí:https://wiki.php.net/internals/windows/stepbystepbuild

Me tomó todo el día pero la compilación de PHP funcionó. Pero luego intenté crear el php_printer.dll Primero intenté:

svn co http://svn.php.net/repository/pecl/printer/trunk pecl/printer

Pero decía: 'svn' no se reconoce como un comando interno o externo, un programa operable o un archivo por lotes.

Así que acabo de descargar los archivos de:svn.php.net/repository/pecl/printer/trunk/ y ponerlos enC: \ php-sdk \ php54dev \ vc9 \ x86 \ php5.4-201303311430 \ ext \ printer

Me aseguré de descargar las bibliotecas tanto de:windows.php.net/downloads/php-sdk/deps/vc9/x86/ También solo el:deps-5.4-vc9-x86.7z

Sin embargo, intenté uno después del otro; Cada vez que recibía lo siguiente cuando intentaba hacer Nake:

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

ACTUALIZAR

Conseguí ayuda en otro foro.

por hackattack142 »03. Abril 2013 23:51

Hola,

Abra 'printer.c' y reemplace todas las instancias de 'pval' con 'zval' y debería compilarse.

Gracias Hackattack, un paso más cerca espero

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

Parecía haberse compilado. Sin embargo; No puedo encontrar una printer.dll o una php_printer.dll, que es el resultado que esperaba.

En elRelease_TS \ ext carpeta hay una carpeta llamadaImpresora. Contiene los siguientes archivos:printer.obj printer.sbr vc90.idb

También hice el último paso:

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>

Ayuda de otro foro

configure --disable-all --enable-cli --enable-printer=shared

Funcionó y creé el php_printer.dll sin embargo, cuando intenté usarlo:

En el registro de errores de PHP: [15-Apr-2013 15:34:53 UTC] Advertencia de PHP: Inicio de PHP: biblioteca no válida (quizás no una biblioteca de PHP) 'php_printer.dll' en Desconocido en la línea 0

Tuve que agarrar archivos 5.4.7 ya que estaba usando 5.4.15 pero XAMPP 1.8.1 usa 5.4.7

http://www.oldapps.com/php_programming_language.php?old_php=8227

Y póngalo en: C: \ php-sdk \ php54dev \ vc9 \ x86 \ php-5.4.7

Luego, coloque los archivos de la impresora en la carpeta ext e hizo todos los procesos anteriores y:

configurar --enable-printer = shared

Y funcionó:

PHP versión 5.4.7 php_printer.dll

http://pylonx.com/PHP/php_printer_5.4.7.zip

Respuestas a la pregunta(2)

Su respuesta a la pregunta