调用WritePrivateProfileString时,最后一个参数不是路径,而是比如说AAA之类,
那么它到底把值写到哪里去了,我到注册表下
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping
没找到,也没有生成相应ini文件.
那么它到底把值写到哪里去了,我到注册表下
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping
没找到,也没有生成相应ini文件.
解决方案 »
- GUILib有个毛病,建立的工具栏被关闭后,下次打开程序,这个工具栏就不出来了。。不关闭下次就可以出来
- VC++2008 创建平滑进度条问题
- 关于XML的IXMLDOMDocument的Save方法底层操作?(关于性能的讨论)-内存数据库
- 简单的问题,求助,ListBox加了8条纪录之后就报错,是什么回事?
- DLL中函数的静态调用和动态调用到底有什么差别?
- 100分,求《深入浅出MFC 2/E》所有源代码。
- 程序在本地可运行,其他机子则无任何反应
- SHGetFolderPath在那里声明的?
- 请问结构之间可否强制类新转换
- MFC DLL 的模块状态的问题
- vs2010是否可用2008 sp1的msdn?
- 如何将100多张小的jpg地图单元读取形成一个地图
BOOL WritePrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpString,
LPCTSTR lpFileName
);
其中各参数的意义
LPCTSTR lpAppName 是INI文件中的一个字段名.
LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.
LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的.
LPCTSTR lpFileName 是完整的INI文件名.
如果最后一个参数为NULL,则写到%SystemRoot%\win.ini里
如果最后一个参数为TEXT(".\\AAA"),生成的AAA文件才是在当前工作目录下
先用GetModuleFileName获取程序的路径,再截取程序所在目录,然后将程序所在目录和ini文件名连接起来得到完整路径
但是程序启动时候用SetRegistryKey(程序名称)设置了下.另外在%SystemRoot%里也没找到相应的ini啊
WritePrivateProfileString是API函数,不是CWinApp的成员函数,所以不受SetRegistryKey的影响
你检查清楚,要加上扩展名.ini才是ini,否则只是AAA
WritePrivateProfileString(x,x,x,ExeName);这样
ExeName是应用程序名称(比如AAA),不是绝对路径.不是相对路径,这个已经相当清楚了.反正我愣是没找到他写在哪里,注册表里,没有,
在C盘我搜索了AAA.ini,也没有,那还有哪里?
afxDump << m_pszProfileName << "\n";
就知道了
ExeName是AAA的话,你应该搜索AAA,而不是AAA.ini
搜索AAA也没有.
TEXT("SecondKey"),
TEXT("By golly, it works!"),
TEXT("E:\\11.ini"));
此代码就能在%windir%里生成一个AAA.ini了;如果没有,检查此函数的返回值看看是否失败了
你可以用SDK的方式写个程序测试下
在%windir%我终于找到了AAA.
之前查找错了名字,囧.
非常感谢.