社区
C++ Builder
帖子详情
bcb 的codeguard 有bug ?
xili
2006-01-22 01:56:07
用 _wfopen() 来处理 unicode 的文件名, 当打开 codeguard 时, codeguard报错, 说"参数调用错误".
但实际文件打开和读写都是对的.
这样有点麻烦,如果关掉 codeguard, 就不能查其他错误了, 打开了又总在 _wfopen() 这里纠缠.
请各位大侠指点呀.
...全文
199
7
打赏
收藏
bcb 的codeguard 有bug ?
用 _wfopen() 来处理 unicode 的文件名, 当打开 codeguard 时, codeguard报错, 说"参数调用错误". 但实际文件打开和读写都是对的. 这样有点麻烦,如果关掉 codeguard, 就不能查其他错误了, 打开了又总在 _wfopen() 这里纠缠. 请各位大侠指点呀.
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xili
2006-01-23
打赏
举报
回复
呵呵, 老季总是有办法, 多谢.
tanlim, 字符串前L, 就表示它是 wchar_t 类型了.是编译器的约定.
加上L后,的确隐含了char 到 wchar_t转换.
但问题不是因为字符串转换的原因.我猜测原因应该是 FILE *fp 所指的内容有所不同 而被codeguard检测到, 后面的 fread, fclose 都不涉及字符串转换.
tanlim
2006-01-22
打赏
举报
回复
_wfopen函数是存在,定义WIDESTRING文件名的打开,而楼主的
FILE * fp2 = _wfopen(L"d:\\test.txt", L"rb");
文件名必须定义为宽字符串,而默认的BCB环境是以ANSISTRING字符串使用的,所以这个地方存在隐含转换不安全的情况。CODEGUARD报错就正常了。
再者问一下楼主你字符串前的L是宏定义吗?
原函数没这个用法呀。
jishiping
2006-01-22
打赏
举报
回复
其他的函数,采用类似的办法。比如你说 fclose 也会这样,那么再增加下面的2行:
[fclose]
Fail=no
jishiping
2006-01-22
打赏
举报
回复
我还是第一次听说 _wfopen 这个函数呢。不过可以自己配置CodeGuard文件,方法很简单。在程序目录下建立一个 ***.cgi 的文件(*** 就是程序的名字),然后用记事本打开,添加下面的2行就可以了:
[fread]
Fail=no
xili
2006-01-22
打赏
举报
回复
只要 FILE * fp 是用 _wfopen 打开的,
后面的 fread(), fclose() 都会被codeguard报错.
xili
2006-01-22
打赏
举报
回复
代码:
FILE * fp2 = _wfopen(L"d:\\test.txt", L"rb");
char buf[20];
fread(buf,1,2,fp2);
fclose(fp2);
俺的环境: win2k + bcb6
ccrun.com
2006-01-22
打赏
举报
回复
贴出你的代码看看。
IntelliJ IDEA的使用
IDEA概述 IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的Java开发工具之一, IDEA是JetBrains公司的产品 IDEA常用快捷键: 快速找到接口的实现类:ctrl+alt+B 搜类或者全局文件的关键词:shift+shift 或者把快捷键设置改为eclipse的快捷键就可以使用c...
如何在idea新建一个maven工程
1.双击IDEA图标,进入到如下界面,在该页面中,点击箭头所示的“Create New Project”选项; 2.选择maven选项,选择JDK版本,勾选图示所示的“Create From Archetype”复选框,选择maven模板,点击【Next】 3.写maven的坐标,“groupId”,“artifactId”,以及“version”,其中groupId是公司域名的反写,而artifactId是项目名或模块名,version就是该项目或模块所对应的版本号,填写完之后,点击【Nex.
解决IDEA 2022.1 创建Maven项目卡死问题
关闭当前项目,然后选择 new project ,按照平时的步骤创建即可(填写项目名,使用的maven模板,设置groupId、artifactId、version)。当新建 Maven 项目时,IDEA 卡死不动。
archetype脚手架-本地配置 & 创建项目(三)
archetype脚手架-本地配置 & 创建项目配置远程 archetype配置远程 archetype配置本地 archetype使用archetype创建项目 maven 发布jar后,如何使用 archetype脚手架? 配置远程 archetype 配置远程 archetype 我们一般使用的是远程的 archetype-catalog.xml ,在新建项目的时候直接点击 Add Archetype <archetype groupId="cn.domain.archetype"
idea创建maven项目
面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】前端面试题汇总JavaScript前端资料汇总。
C++ Builder
13,871
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章