IDC_EDIT1是我的edit control控件的名.
我要用GetDlgItemText把edit control里输入的内容得到.(问题在代码注释里边)char* fileBuffer = new char[LGM_FILE_STR_MAX];
char* edit_text = new char[LGM_FILE_STR_MAX]; //用来存edit control里的内容
LPTSTR temp = (LPTSTR)edit_text;GetDlgItemText(IDC_EDIT1,temp,LGM_FILE_STR_MAX); /*第二个参数是LPTSTR的. !调试到了这里发现,temp里取到了我输
入的"sssd",但是edit_text里只有第一个字母"s",怎样才能让
edit_text得到完整的字符串?
*/
//edit_text = (char*)temp;
strncpy(fileBuffer,edit_text,LGM_FILE_STR_MAX);
fwrite(fileBuffer,sizeof(char),strlen(fileBuffer),fp);fclose(fp);
delete [] fileBuffer;
delete [] edit_text;(问题在代码注释里边)
我要用GetDlgItemText把edit control里输入的内容得到.(问题在代码注释里边)char* fileBuffer = new char[LGM_FILE_STR_MAX];
char* edit_text = new char[LGM_FILE_STR_MAX]; //用来存edit control里的内容
LPTSTR temp = (LPTSTR)edit_text;GetDlgItemText(IDC_EDIT1,temp,LGM_FILE_STR_MAX); /*第二个参数是LPTSTR的. !调试到了这里发现,temp里取到了我输
入的"sssd",但是edit_text里只有第一个字母"s",怎样才能让
edit_text得到完整的字符串?
*/
//edit_text = (char*)temp;
strncpy(fileBuffer,edit_text,LGM_FILE_STR_MAX);
fwrite(fileBuffer,sizeof(char),strlen(fileBuffer),fp);fclose(fp);
delete [] fileBuffer;
delete [] edit_text;(问题在代码注释里边)
temp和edit_text指向同一块内存,怎么会内容不同呢。
LPTSTR edit_text = new char[LGM_FILE_STR_MAX]; //用来存edit control里的内容GetDlgItemText(IDC_EDIT1,edit_text,LGM_FILE_STR_MAX);#ifdef _UNICODE
WideCharToMultiByte( CP_ACP, 0, edit_text, -1, fileBuffer, LGM_FILE_STR_MAX, NULL, NULL );
#else
strncpy(fileBuffer,edit_text,LGM_FILE_STR_MAX);
#endiffwrite(fileBuffer,sizeof(char),strlen(fileBuffer),fp);fclose(fp);
delete [] fileBuffer;
delete [] edit_text;