char* CharupPath = NULL;
tchar2char(upPath,CharupPath);
sprintf(CharupPath,"%s",Repacked_PATHStr);
tchar2char(upPath,CharupPath);
sprintf(CharupPath,"%s",Repacked_PATHStr);
以上CharupPath是没有指向内存空间的空指针,其值为0。直接传递进tchar2char()中做参数进行数据操作,故引起程序崩溃。
正确的做法应该是:
char acCharupPath[MAX_PATH + 1] = {0};
tchar2char(upPath,acCharupPath);
sprintf(acCharupPath,"%s",Repacked_PATHStr);
其中MAX_PATH是upPath的长度,这里acCharupPath的长度要大于upPath和Repacked_PATHStr的长度,才可以转换和复制成功。