這可能是一個簡單的問題,但我已經嘗試了一切,並且處於完全損失狀態。使用%s和sprintf沒有給出預期的結果
sprintf(&szDevCapEntry[strlen(szDevCapEntry)], ",%s:%0d", (LPCSTR)szAnalogP, szAnalogChannels);
行應添加AL:1000
但它增加了A:1000
,我不知道爲什麼。 szAnalogP
絕對是AL。任何任何想法?
編輯:我的功能:
extern "C" UINT __stdcall WriteDriverEntry(MSIHANDLE hInstall)
{
HRESULT hr = S_OK;
UINT er = ERROR_SUCCESS;
CString m_DevicePrintName, m_nDeviceNumber, m_DeviceName;
LPWSTR szDevicePrintName= NULL, szDeviceNum = NULL, szValueBuf = NULL, szAnalogP = NULL, szDigitalP = NULL, szAnalogOP = NULL, szDigitalOP = NULL;
LPWSTR szDiagnosticP = NULL, szCounterP;
CHAR szDevCapEntry[256], szBuffer[MAX_PATH];
int Index, szAnalogChannels, szDigitalChannels, szAnalogOChannels, szDigitalOChannels, szDiagnosticChannels, szCounterChannels;
hr = WcaInitialize(hInstall, "WriteDriverEntry");
ExitOnFailure(hr, "Failed to initialize");
WcaLog(LOGMSG_STANDARD, "Initialized.");
hr = WcaGetProperty(L"COMPORTNUMBER", &szDeviceNum);
ExitOnFailure(hr, "failed to get comport number");
m_nDeviceNumber = szDeviceNum;
hr = WcaGetProperty(L"DEVICEPRINTNAME", &szDevicePrintName);
ExitOnFailure(hr, "failed to get device print name");
m_DevicePrintName = szDevicePrintName;
hr = WcaGetProperty(L"DEVICENAME",&szValueBuf);
ExitOnFailure(hr, "failed to get device name");
m_DeviceName = szValueBuf;
wsprintf(szDevCapEntry, "%s,%s,%s", (LPCSTR)m_DeviceName, m_nDeviceNumber, (LPCSTR)m_DevicePrintName);
hr = WcaGetProperty(L"ANALOGPREFIX",&szAnalogP);
hr = WcaGetIntProperty(L"ANALOGCHANNELS",&szAnalogChannels);
if (szAnalogChannels != 0)
{
WcaSetProperty(L"TEST", szAnalogP);
sprintf(&szDevCapEntry[strlen(szDevCapEntry)], ",%s:%0d", (LPCSTR)szAnalogP, szAnalogChannels);
WcaLog(LOGMSG_STANDARD, szDevCapEntry);
}
if (!UpdateCapEntry(szDevCapEntry))
return -1;
LExit:
er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE;
return WcaFinalize(er);
}
我有諸如%.2s不同的變化,這樣它會顯示兩個字符,但我只有一次。我很抱歉,如果這是一個太寬泛的問題,但我是一個初學者,不能解決這個問題。我想可能將這個變量轉換爲char可能會起作用,但它給了我相同的結果。
http://sscce.org/ – NPE 2013-03-06 14:35:12
SSCCE速度很快,或者它會因本地化而關閉 – 2013-03-06 14:35:47
如何聲明szAnalogP?你如何分配它?你有沒有檢查過一個實際上是你期望的調試器? – 2013-03-06 14:36:00