一个配置文件,para.ini,文件内容:
[ACCESS]
db=
---------------------------------------------------------------------
程序:首先打开文件框选择文件将路径全名放到CString mdb_file;
CFileDialog Open(true,"","",0,"Access(*.mdb)|*.mdb|",this);
if(Open.DoModal()==IDOK)
{
mdb_file=Open.GetPathName();
SetDlgItemText(IDC_EDIT_MDB,mdb_file);
}
然后在另一个函数中:
WritePrivateProfileString("ACCESS","db",mdb_file,".\\para.ini")
mdb_file变量不是在函数中定义而是定义在类中。
执行完这条语句,但配置文件中的db=后面仍然是空的,,
请问这是为什么啊????
[ACCESS]
db=
---------------------------------------------------------------------
程序:首先打开文件框选择文件将路径全名放到CString mdb_file;
CFileDialog Open(true,"","",0,"Access(*.mdb)|*.mdb|",this);
if(Open.DoModal()==IDOK)
{
mdb_file=Open.GetPathName();
SetDlgItemText(IDC_EDIT_MDB,mdb_file);
}
然后在另一个函数中:
WritePrivateProfileString("ACCESS","db",mdb_file,".\\para.ini")
mdb_file变量不是在函数中定义而是定义在类中。
执行完这条语句,但配置文件中的db=后面仍然是空的,,
请问这是为什么啊????
解决方案 »
- 奇怪的问题,socket的缓冲区,用字符数组没有问题,用malloc分配空间接受的数据不正确?
- 关于读写xml的,请大神们解答
- 使用WSAIoctl进行Sniffer为什么经常出现丢包或收到错误的包
- 请问如何判断图片文件的完整性
- 问题未结,再发一蛋——MSCOMM控件 and CSerialport类,强淫们请进!!
- 按钮回车问题?
- 麻烦大家帮忙,关于IP Address控件的问题
- 怎么使一个对话框最大化显示??急?
- 望高手指点:关于安装导入的.dll的问题,包括msxml.dll, sqldmo.rll,怎么处理?
- SDK 能否使用MFC 的类库呢!!!
- com线程模式的一点疑问?
- 我想从本地dll中得到一个字符串数组,放到activex控件中,该如何做?
mdb_file 可能就是空的。
写之前先检查一下它的值。
mdb_file.isempty(),, 为非空,,在调试时可以看到变量值
WritePrivateProfileString("ACCESS","db",mdb_file,".\\para.ini")
改成
WritePrivateProfileString("ACCESS","db", "abc",".\\para.ini")
看看,是不是写景去了。
按照你的方法,可以将abc写到配置文件中在注册表中没有看到我的那个文件名和相关内容
d:\abc.mdb
这个真的不是很好
如果线程当前到了某个目录,比如访问文件mfc42.dll,那么相对路径就到c:\winnt哪里去了
所以你直接写“abc”进去可以,调用UpdateData(TRUE)跑到另外一个目录了,就写不进去了
实际也是写了文件的,只不过文件写的路径不对不信你在系统盘查找一下"para.ini",相信会有所发现
自己的配置文件我基本上是不用相对路径去读写的
BOOL CMYApp::InitInstance()
{
GetCurrentDirectory(MAX_PATH, g_szWorkPath);
}
然后构造配置文件路径