我正在寫一個C++代碼,返回一些數據,問題是:我每次從另一個文件調用它時,const char都會丟失它的值。我不知道發生了什麼事。char *丟失數據
我對ProcClient.h
代碼virtual void reportWorkflowError(unsigned int workflow,
const dp::String& errorCode) {
char message[1000];
snprintf(message, 1000, "Workflow: %s ERROR: %s", workflowToString(
workflow).utf8(), errorCode.utf8());
printf("[%s]", message);
errorInfo = message;
}
virtual const char * getErrorInfo() {
return errorInfo;
}
[工作流程:DW_FULFILL ERROR:E_ADEPT_NO_TOKEN]
[工作流程:ERROR:E_ADEPT_NOT_READY]
//被拋出兩個錯誤,和errorInfo中應該有最後的
關於Services.cpp我開始一個「工作流程」,如果它拋出一個錯誤上面的監聽器被調用,之後,我應該得到臨時lastError指針。
// g_drmClient是ProcClient
bool RMServices::startFullfilment(dp::String acsm) {
//Do things
g_drmClient->getProcessor()->startWorkflows(dpdrm::DW_FULFILL);
size_t count = g_drmClient->getProcessor()->getFulfillmentItems();
printf("Number of items fulfilled: %d\n", count);
bool returnValue = !g_drmClient->hasError();
if (!returnValue)
lastError = g_drmClient->getErrorInfo());
printf("[%s]", lastError);
return returnValue;
}
這會打印: [\æ¾°O£¯| ITE的æ¾\æ¾er項目fulfer]
發生了什麼事?
提示:嘗試創建一個演示問題的最小測試用例。儘可能刪除儘可能多的代碼,並且您(和其他人)更容易發現問題。 – JesperE 2011-03-30 17:44:58