CString szCKey, szCName, szFile, szTmp;
CFile File;
PCHAR pName, pKey, pMix;
PBYTE pbBuffer, pbFBuffer, pbKBuffer, pbNBuffer, pbMix, pbTmp;
DWORD dwFileLen, dwNameLen, dwKeyLen;m_MPath.GetWindowText(szFile);
m_Private.GetWindowText(szCKey);
m_RegName.GetWindowText(szCName);
szCKey.Trim(" ");
szCKey.Remove('-');
szCName.Trim(" ");
szTmp = szCKey + szCName;dwNameLen = szCName.GetLength();
dwKeyLen = szCKey.GetLength();
pName = new char[dwNameLen+1];
pKey = new char[dwKeyLen+1];
pMix = new char[dwNameLen+dwKeyLen+1];
strcpy(pName, szCName);
strcpy(pKey, szCKey);
strcpy(pMix, szTmp);File.Open(szFile, CFile::modeRead); // 打开 mpf 功能文件
dwFileLen = File.GetLength();
pbBuffer = new BYTE[dwFileLen]; // 为文件分配内存
pbFBuffer = new BYTE[dwFileLen]; // 为新文件缓冲区分配内存
File.SeekToBegin();
File.Read(pbBuffer, dwFileLen); // 文件数据读入缓冲区
File.Close();pbKBuffer = new BYTE[dwKeyLen];
pbNBuffer = new BYTE[dwNameLen];Encrypt(pbBuffer, pbFBuffer, dwFileLen, pMix); // 文件加密
Encrypt((PBYTE)pKey, pbKBuffer, dwKeyLen, pName);
Encrypt((PBYTE)pName, pbNBuffer, dwNameLen, pKey);File.Open("license.db", CFile::modeCreate | CFile::modeWrite);File.SeekToBegin();
File.Write(pbKBuffer, dwKeyLen);
File.SeekToEnd();
File.Write(pbFBuffer, dwFileLen);
File.SeekToEnd();
File.Write(pbNBuffer, dwNameLen);File.Close();delete pbBuffer;
delete pbFBuffer;
delete pbKBuffer; // <--------当执行到这时提示 xx.exe中的 0x77f75a58 处未处理的异常: 用户断点 。中断的地方是 free.c 中的#endif /* _WIN64 */
{
HeapFree(_crtheap, 0, pBlock);
}这是怎么回事?
CFile File;
PCHAR pName, pKey, pMix;
PBYTE pbBuffer, pbFBuffer, pbKBuffer, pbNBuffer, pbMix, pbTmp;
DWORD dwFileLen, dwNameLen, dwKeyLen;m_MPath.GetWindowText(szFile);
m_Private.GetWindowText(szCKey);
m_RegName.GetWindowText(szCName);
szCKey.Trim(" ");
szCKey.Remove('-');
szCName.Trim(" ");
szTmp = szCKey + szCName;dwNameLen = szCName.GetLength();
dwKeyLen = szCKey.GetLength();
pName = new char[dwNameLen+1];
pKey = new char[dwKeyLen+1];
pMix = new char[dwNameLen+dwKeyLen+1];
strcpy(pName, szCName);
strcpy(pKey, szCKey);
strcpy(pMix, szTmp);File.Open(szFile, CFile::modeRead); // 打开 mpf 功能文件
dwFileLen = File.GetLength();
pbBuffer = new BYTE[dwFileLen]; // 为文件分配内存
pbFBuffer = new BYTE[dwFileLen]; // 为新文件缓冲区分配内存
File.SeekToBegin();
File.Read(pbBuffer, dwFileLen); // 文件数据读入缓冲区
File.Close();pbKBuffer = new BYTE[dwKeyLen];
pbNBuffer = new BYTE[dwNameLen];Encrypt(pbBuffer, pbFBuffer, dwFileLen, pMix); // 文件加密
Encrypt((PBYTE)pKey, pbKBuffer, dwKeyLen, pName);
Encrypt((PBYTE)pName, pbNBuffer, dwNameLen, pKey);File.Open("license.db", CFile::modeCreate | CFile::modeWrite);File.SeekToBegin();
File.Write(pbKBuffer, dwKeyLen);
File.SeekToEnd();
File.Write(pbFBuffer, dwFileLen);
File.SeekToEnd();
File.Write(pbNBuffer, dwNameLen);File.Close();delete pbBuffer;
delete pbFBuffer;
delete pbKBuffer; // <--------当执行到这时提示 xx.exe中的 0x77f75a58 处未处理的异常: 用户断点 。中断的地方是 free.c 中的#endif /* _WIN64 */
{
HeapFree(_crtheap, 0, pBlock);
}这是怎么回事?
解决方案 »
- 用ODBC连接ACCESS数据库,对话框显示不了数据库
- 请高手指教两个 问题
- 【求助】我在调试程序的时候,在程序关闭时,有错误框闪过就消失了,怎么让这个错误框显示出来
- 问闻诒洋,您的ODBC API文档的vc 下二进制字段读有问题,请救急,都好几天,进展慢??O
- 请问当dll在的情况下...
- 如WAV,哪里有CD的格式文档?
- 如何编程实现更改文件图标?
- 我不知道,改了option那个设置,使原本正确的程序无法运行
- 谁能帮我解释一下CBitmap::LoadBitmap 的参数?多谢
- 救救我吧。快来看看哪错了?
- 高分求助:屏幕动作捕捉保存成avi的源代码
- 求反汇编工具,生成C/C++的代码的那种?来者有分
还有
delete []pbBuffer;
……
可是外部还是在 delete 那块出错delete [] 和 delete 有什么区别?
delete []pbBuffer;
delete []pbFBuffer;
delete []pbBuffer;
呵,不过还是排一排错吧
但 boundscheck 还是提示在 delete 的时候有泄漏Allocation Conflict: Attempting to call free on pointer 0x014366D8, that was allocated by global_operator_new_array.这是怎么回事?
文件加密函数处可能有问题。
检查加密算法吧,可能是算法里面修改了指针的地址。
char * pszName = new char[3] ;
char name[4] = "ooo" ;
pszName = name ;
delete pszName ;是不行的