专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VC

请帮小弟我看下这段代码的有关问题

发布时间:2011-06-23 14:25:29 文章来源:www.iduyao.cn 采编人员:星星草
请帮我看下这段代码的问题?
C/C++ code

char* buf = (char*)LocalAlloc(LPTR, 8);
//::ZeroMemory(buf, 8);
/*
遍历字符串进行转码
*/
while( *pWork != 0x0 )
{
::ZeroMemory(buf, 8);
if ( *pWork != '!' && *pWork != '@' && *pWork != '#' &&
*pWork != '$' && *pWork != '&' && *pWork != '*' &&
*pWork != '(' && *pWork != ')' && *pWork != '=' &&
*pWork != ':' && *pWork != '/' && *pWork != ';' &&
*pWork != '?' && *pWork != '+' && *pWork != '\'' &&
*pWork != '.' )
{
sprintf_s(buf, d_size, "%%%2x", *pWork);
//strcat_s(des, d_size, buf);
}
else
{
sprintf_s(buf, d_size,"%c", *pWork);
}
strcat_s(des, d_size, buf);

pWork++;
}
LocalFree(buf);//问题出在这里



纯 MSIL 公共语言运行库支持(/clr:pure)--。使用这个选项能运行,但有时出现托管错误
公共语言运行库支持(/clr)--使用这个选项能运行,但有LocalFree(buf)会中断,EAP[RSAEnCrypt.exe]: Heap block at 001BA9D8 modified at 001BA9E8 past requested size of 8
Windows 已在 RSAEnCrypt.exe 中触发一个断点。

其原因可能是堆被损坏,这也说明 RSAEnCrypt.exe 中或它所加载的任何 DLL 中有 bug。

其他选项编译不能通过。

为什么会在LocalFree(buf)这出问题,麻烦名位指点迷津,先行谢过!

------解决方案--------------------
没看到托管代码。。。。。。。你不需要添加托管编译选项
------解决方案--------------------
我不用带_s的函数,哈哈
这个只能在Windows平台下用
感觉也不好用
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: