找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 536|回复: 9

[求助]:紧急求助,关于在CFile文件内实现CString类对象的写入与读取?

[复制链接]
发表于 2004-3-22 10:59:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我在ARX或者VC中新建一个对话类,对话中包括一个LISTBOX控件,他的对应变量str1是CString类型,在ARX命令中实例该对话dlg,声明一个CString对象str2,我又新建一个CFile 对象,通过str2=dlg.str1,cfile.write(str2), 和CFILE.READ(STR2)在CFile中写入或读取LISTBOX的值,总是容易出错,并不是一直错,
void yyyarxcommand()
{
cfile file1;CString str2;
CMyDlg dlg;
cfile1.open();
CFILE.READ(&str2,8);
dlg.str1=str2;
if (dlg.domodal()==idok)
{
STR2=DLG.STR1;
CFILE.WRITE(&STR2,8)
}
错在那里,为什么错,什么解决办法?
跪谢!!!急待帮助!!!!!!!!!

另外,怎么调试ARX程序呢?编译可以通过,而执行时总是出错,能不能象VC一样断点调试,
或者有什么好的调试手段,望赐教!!!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-3-22 21:01:02 | 显示全部楼层
把CMyDlg类的相关代码发上来,最好是整个工程文件,这样比较容易找到问题的原因!

另外,调试ARX代码就和一般的程序调试一样的,ARX实际上就是DLL!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-22 21:04:38 | 显示全部楼层
CFILE.READ和CFILE.WRITE不能直接读取CString
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-3-22 21:56:45 | 显示全部楼层
class CDataInDlg : public CDialog
{
public:
        CDataInDlg(CWnd* pParent = NULL);   // standard constructor
        CString        str1;
        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
protected:
        // Generated message map functions
        //{{AFX_MSG(CDataInDlg)
        afx_msg void OnZuotuClick();
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
};
同一般的对话是一样的,只是有一个LISTBOX控件罢了.


另外,我在做ARX程序时,编译没有问题,而在CAD中加载却总是出现 MEMORY VIOLATION!!

如果,CFILE不能直接READ,WRITE CSTRING类对象,那么该怎么转换,
还是我的这种方法不好,有更好的方法吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-24 19:56:48 | 显示全部楼层
char buf[8];
CFILE.READ(buf,8);
str2=buf;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-24 20:07:51 | 显示全部楼层
兄弟,调试和vc是一样的啊,没有任何区别。
第一次调试时会跳出对话框显示acad.exe的位置。
然后在autocad环境下加载debug下的arx文件即可。
另外,用CFILE读和写文件只能用Char型,不能用CString类型。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-3-25 21:05:04 | 显示全部楼层
谢谢,我还想问一个问题,在VC中如何实现从CString到double的转换??望赐教,对我很有帮助!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-30 09:01:15 | 显示全部楼层
可以用CStdioFile
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-4-19 20:45:56 | 显示全部楼层
8楼说的方法也不错,使用CStdioFile类可以实现这个功能,谢谢!!

但是我还想问个问题,char *charstr与CString  CStringstr两个的成员函数不同,但是可以相互转换,比如CStringstr=charstr,非常不好的是在他们作为参数的时候,两个内置数据类型就不一样了,而且经常有这样的函数要求参数的类型或者为前者,或者为后者,(也可以说CString 是一个类),搞的我总云头转向,我想问,
这两个数据类型的差别在那里,相同在那里?
如何克服上边的问题,希望详细点!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-20 21:42:38 | 显示全部楼层
CString strValue("1.234");
    double dblValue;
     
    dblValue = atof((LPCTSTR)strValue);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-6-17 18:01 , Processed in 0.311448 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表