2017-05-07 297 views
0

當我在Visual Studio 2015中執行代碼時,我收到以下消息
觸發了一個斷點。
看來,在行在stdio.h發生錯誤1265應用程序無法啓動(錯誤歸因於_stprintf_s)

{ 
    int const _Result = __stdio_common_vswprintf_s(// this is line 1265 
     _CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, 
     _Buffer, _BufferCount, _Format, _Locale, _ArgList); 

    return _Result < 0 ? -1 : _Result; 
} 

問題在這一行,但我不明白爲什麼?

_stprintf_s(info_temp, _T("\r\n%s"), infoBuf); 

這裏是我的代碼:

TCHAR* envVarStrings[] = 
{ 
    TEXT("OS   = %OS%"), 
    TEXT("PATH  = %PATH%"), 
    TEXT("HOMEPATH = %HOMEPATH%"), 
    TEXT("TEMP  = %TEMP%") 
}; 
#define ENV_VAR_STRING_COUNT (sizeof(envVarStrings)/sizeof(TCHAR*)) 
#define INFO_BUFFER_SIZE 32767 

void main() 
{ 
    DWORD i; 
    TCHAR infoBuf[INFO_BUFFER_SIZE]; 
    DWORD bufCharCount = INFO_BUFFER_SIZE; 
    ... 
    bufCharCount = ExpandEnvironmentStrings(envVarStrings[1], infoBuf, 
      INFO_BUFFER_SIZE); 
     TCHAR info_temp[MAX_PATH]; 
     _stprintf_s(info_temp, _T("\r\n%s"), infoBuf); 
     SetWindowText(GetDlgItem(hWnd, ID_EDIT), info_temp); 
    ... 
} 

回答

0

你是不是正確調用_stprintf_s。第二個參數應該是目標字符串的大小。

_stprintf_s(info_temp, MAX_PATH, _T("\r\n%s"), infoBuf); 
+0

這不幫助我,它仍然是一樣的錯誤。 –

+0

'MAX_PATH'是文件路徑中的最大字符數,而不是「PATH」變量的最大大小。由'ExpandEnvironmentStrings'返回的'bufCharCount'的值是否小於'MAX_PATH'('info_temp'字符串的大小)? – pcarter

+0

謝謝你的想法,我沒有立即考慮到很長的路線。我改變了'TCHAR info_temp [10000]'程序已經賺了。十分感謝! PS。一千還不夠:/ –