Ich verwende wcstombs_s
in meinem Code, um CString
zu char*
zu konvertieren. Hier ist Code:wcstombs_s funktioniert nicht richtig
AddItemToListIncludeSubFolder(CString FolderPath, CString Parent)
{
char szInputPath[1024];
memset(szInputPath,1024,'\0');
size_t CharactersConverted=0;
wcstombs_s(&CharactersConverted, szInputPath, FolderPath.GetLength()+1,
FolderPath, _TRUNCATE);
}
Es löst Ausnahme einige Zeit. Speicherausnahme ist wcstombs_s
funktioniert nicht, wenn CString
ist zu lang wie 1024 Zeichen oder ich mache etwas falsch.
Stellen Sie bitte ein komplettes kleines Programm vor, das den Fehler anzeigt. Wie Ihr Code gerade ist, haben Sie zwei "memset" Aufrufe, auf Variablen, die nicht in Ihrem Aufruf von 'wcstombs_s' verwendet werden. Das ist nur Lärm, soweit es dein Problem erklärt. –
BOOL CPDF2ImageDlg :: DeleteItemFromListIncludeSubFolder (CString FolderPath, CString Eltern) { \t MSG msg; \t HANDLE hFile; \t WIN32_FIND_DATAA lpFile; \t Zeichen FilePath [MAX_PATH_LENTH]; \t char szInputPath [MAX_PATH_LENTH]; \t \t size_t CharactersConverted = 0; \t memset (Dateipfad, MAX_PATH_LENTH, '\ 0'); \t memset (szInputPath, MAX_PATH_LENTH, '\ 0'); \t wcstombs_s (& CharactersConverted, szInputPath, FolderPath.GetLength() + 1, FolderPath, _TRUNCATE); –
Hallo, ich habe den Code bearbeitet, den Sie jetzt überprüfen können. Es erhöht Laufzeit Ausnahme einige Zeit, die Speicher betreffen. –