Problema al pasar función de D2007 a Berlín
Hola a tod@s.
Tengo esta función para activar/desactivar la función "duplex" de las impresoras:
Esto con mi Delphi 2007 va perfectamente pero estoy intentando pasarla a Delphi Berlin y me da el siguiente error al compilar: Incompatible types: 'PAnsiChar' and 'array[0..255] or Char señalando la variable "Device" de la linea "if DeviceCapabilitiesA(Device, Port, DC_DUPLEX, nil, nil) = 1 then begin" Imagino que habrá que hacer alguna conversión de tipos de variable pero la verdad es que no doy con la tecla. ¿Alguien me puede iluminar? Gracias y un saludo |
¿Has probado: Device, Driver, Port : array[0..255] of ansichar; ?
|
Cita:
Si, y me dice: Incompatible types: 'PWideChar' and 'array[0..255] of AnsiChar Gracias y un saludo |
Lo otro es que sean pansichar, pero no sé qué tipos son cada uno de los parámetros.
A ver si alguien que use esas versiones modernas puede ayudar. |
Si, cambiaron los tipos de datos de los parámetros! Pues, de esta manera compila pero...
|
Gracias a los dos por contestar.
movorack, disculpa pero no entiendo tu respuesta. En la unidad WinSpool de mi Delphi Berlín la función está declarada de la siguiente forma:
o sea, las variables están como tipo LPCSTR pero no sé cómo hacer la declaración y la llamada. Saludos |
Mientras responde movorack...
Dices que la función es: Sin embargo, creo que la llamas con los parámetros cambiados de orden: Aparte de eso, lo mismo puede que funcione de la forma: PAnsiChar(AnsiString()) |
Casimiro.
Ese código era una propuesta de movorack, yo lo estaba poniendo en el orden correcto. Por otro lado con tu última propuesta "PAnsiChar(AnsiString())" si que ha funcionado. :) Gracias a los dos y un saludo |
Hola, que mala costumbre la de nosotros los latinoamericanos de dormir mientras uds están trabajando :D
Lo que sucede es que en el Berlín que tengo instalado (Delphi Berlín 10.1 Update 2) están así:
Pero, LPCSTR termina siendo del tipo PAnsiChar
y la duda es porque DeviceCapabilitiesA pide un parámetro llamado pDeviceName que en tu código original no veo. |
Cita:
Aquí no trabajamos hombre, estamos todo el día de fiesta. :cool: Pues es curioso porque mi versión es igualmente Berlín 10.1 Update 2 y se ve que esa función en particular la declara de forma diferente :confused: De una forma o de otra lo solucioné con la propuesta de Casimiro. Gracias y un saludo |
La franja horaria es GMT +2. Ahora son las 01:54:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi