我需要获取打印机的IP,但没有太大的成功。
已经尝试了各种方式。目前我的代码是这样的:
void Spl::GetIpAddress(LPSTR printerName)
{
HANDLE hPrinter;
PBYTE wAddress = NULL;
DWORD size;
DWORD status;
LPSTR portName = GetProt(printerName);
std::ostringstream strTemp;
strTemp << portName;
string temp = ",XcvPort " + strTemp.str();
//temp = ,XcvPort 192.168.2.247
LPSTR tempLPSTR((LPSTR)temp.c_str());
if(OpenPrinter(tempLPSTR,&hPrinter,NULL))
{
if (XcvData(hPrinter, L"IPAddress", NULL, 0,wAddress,31, &size,&status))
{
}
}
}
当他尝试调用XcvData函数时,她没有输入'IF'。我的对象“ wAddress”保持为空。
因为我没有得到?
OBS:此代码基于msdn doc:http://msdn.microsoft.com/en-us/library/windows/hardware/ff562761(v=vs.85).aspx
谢谢!
最佳答案
您在OpenPrinter
调用中缺少服务器名称。打印机名称应如下所示:
"\\\\myServer\\,XvcPort myPort"
要确认是问题所在,请在
GetLastError
失败时调用OpenPrinter
。关于c++ - 使用XcvData获取IPAddress,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15837261/