V
vickymade
Unregistered / Unconfirmed
GUEST, unregistred user!
程序代码如下<br><br>procedure AltGetPrinter (ADevice, ADriver, APort: PChar;<br> var ADeviceMode: THandle);<br>{$IFDEF Win32}<br>var<br> pHandle: THandle;<br> pBuffer: PChar;<br>{$IFDEF Ver120}<br> pCount: DWord;<br>{$ELSE}<br> pCount: Integer;<br>{$ENDIF}<br>{$ENDIF}<br>begin<br> Printer.GetPrinter(ADevice, ADriver, APort, ADeviceMode);<br>{$IFDEF Win32}<br> if OpenPrinter(ADevice, pHandle, nil) then<br> try<br> GetPrinterDriver(pHandle, '', 2, nil, 0, pCount);<br> if pCount>0 then<br> try<br> GetMem(pBuffer, pCount);<br> if GetPrinterDriver(pHandle, '', 2, PByte(pBuffer), pCount, pCount) then<br> ADriver := @(ChangeFileExt(ExtractFileName(StrPas(PDriverInfo2(pBuffer)^.pDriverPath)),'')+#0)[1];<br> finally<br> FreeMem(pBuffer);<br> end;<br> finally<br> ClosePrinter(pHandle);<br> end;<br>{$ENDIF}<br>end;<br><br><br>在执行GetPrintDriver()的时候报错,错误信息为:<br>Types of actual and formal var parameters must be identical<br>那位大虾能给我把这个问题讲明白喽啊。我现在一碰到这些API就晕乎。