谁懂ini配置啊

xiaoyangssdut 2010-07-07 11:43:17
我是大菜鸟 要做一个程序 程序配置文件那块怎么做啊 就是打开程序后读取一个ini文件 把里面的固定的参数显示到程序中 要怎么做啊 能给个详细步骤吗,大哥们?
...全文
128 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
scq2099yt 2010-07-14
  • 打赏
  • 举报
回复
ini文件的编程参见下面文章:
http://www.joyvc.cn/OtherTechnical/OtherTechnical00068.html
http://www.joyvc.cn/OtherTechnical/OtherTechnical00066.html
adamwyb 2010-07-07
  • 打赏
  • 举报
回复
原理就是读取文件,然后对字符串进行处理,如果你想读取一些有个性的ini文件,还是自己定义比较好。
Eleven 2010-07-07
  • 打赏
  • 举报
回复
MSDN找GetPrivateProfile...开头的函数
xmzzy 2010-07-07
  • 打赏
  • 举报
回复
WritePrivateProfileString

等相关函数了解下
InitialJ 2010-07-07
  • 打赏
  • 举报
回复
GetPrivateProfileInt
梧桐126 2010-07-07
  • 打赏
  • 举报
回复
可以,不过得把路径传进去,绝对路径就不用了!
xiaoyangssdut 2010-07-07
  • 打赏
  • 举报
回复
请问这个写成一个动态链接库 调用可以吗
jastdoit 2010-07-07
  • 打赏
  • 举报
回复
如果读取的是数字就用GetPrivateProfileInt()
如果读取的是字符串就用GetPrivateProfileString()
eg:
[System]
ip=10.0.0.0
GetPrivateProfileString("System","IP","",变量,20,"路径");
fanxing425 2010-07-07
  • 打赏
  • 举报
回复
给你个例子,用获得字符串对应的内容的函数:
配置文件如下样子:
建立个文本文件,命名成.ini,将如下内容Copy进去。


[Setting]
Language=简体中文



[String]
IDS_MENU_FILE=文件
IDS_FILE_LOGIN=登陆(&I)
IDS_FILE_LOGOUT=注销(&O)
IDS_MENU_EXIT=退出


IDS_MENU_DATA=数据
IDS_MENU_READ_SPT=读警棍数据
IDS_DATA_PATROL_PERSON=巡逻人员信息
IDS_DATA_ADDRESS=地址信息
IDS_DATA_ACCIDENT=事故信息
IDS_DATA_PLAN=计划信息


在程序中增加如下函数,注意将g_szLanguagePath
初始化成自己的程序所在路径及:如: C:\\my Program\\Debug\\文件名.ini,
参数szID 为ini文件中"="前面的字符串
CString g_LoadString(CString szID)
{
CString szValue;
DWORD dwSize = 1000;
GetPrivateProfileString("String",szID,"Not Found",
szValue.GetBuffer(dwSize),dwSize,g_szLanguagePath);
szValue.ReleaseBuffer();
szValue.Replace("\\n","\n"); //替换回换行符号

return szValue;
}

如上,假如g_LoadString("IDS_MENU_DATA") 调用则返回"数据"字符串,如果要写入ini文件,用WritePrivateProfileString()
fanxing425 2010-07-07
  • 打赏
  • 举报
回复
给你个例子,用配置文件对应字符串设置对话框控件的Caption的例子:
配置文件如下样子:
建立个文本文件,命名成.ini,将如下内容Copy进去。


[Setting]
Language=简体中文



[String]
IDS_MENU_FILE=文件
IDS_FILE_LOGIN=登陆(&I)
IDS_FILE_LOGOUT=注销(&O)
IDS_MENU_EXIT=退出


IDS_MENU_DATA=数据
IDS_MENU_READ_SPT=读警棍数据
IDS_DATA_PATROL_PERSON=巡逻人员信息
IDS_DATA_ADDRESS=地址信息
IDS_DATA_ACCIDENT=事故信息
IDS_DATA_PLAN=计划信息


在程序中增加如下函数,注意将g_szLanguagePath
初始化成自己的程序所在路径及:如: C:\\my Program\\Debug\\文件名.ini,
参数szID 为ini文件中"="前面的字符串
CString g_LoadString(CString szID)
{
CString szValue;
DWORD dwSize = 1000;
GetPrivateProfileString("String",szID,"Not Found",
szValue.GetBuffer(dwSize),dwSize,g_szLanguagePath);
szValue.ReleaseBuffer();
szValue.Replace("\\n","\n"); //替换回换行符号

return szValue;
}

如上,假如g_LoadString("IDS_MENU_DATA") 调用则返回"数据"字符串,如果要写入ini文件,用WritePrivateProfileString()
goalcn 2010-07-07
  • 打赏
  • 举报
回复
其实就是读写文件
不用系统函数自己写都可以
xiaoyangssdut 2010-07-07
  • 打赏
  • 举报
回复
非常感谢大家 谢谢大家热情的回答 鞠躬!
lyl0625 2010-07-07
  • 打赏
  • 举报
回复
哦,对不起,上面有个写错了。
应该是CString strIniPath = _T("C:\\Documents and Settings\\test.ini");
lyl0625 2010-07-07
  • 打赏
  • 举报
回复
哦,对不起,上面有个写错了。
应该是CString strIniPath = _T("C:\\Documents and Settings\\test.ini");
lyl0625 2010-07-07
  • 打赏
  • 举报
回复
比如你新建了一个ini文件,如test.ini
在ini文件中设置
然后你在代码中添加如下语句:

CString strIniPath = _T("C:\Documents and Settings\test.ini");

int iCount = GetPrivateProfileInt("TEST_PARAMETER", "ITEMCount", 0, strIniPath);

这样就获取了test.ini中的ITEMCount的值。
程序名称:OllyDBG版 本:1.10汉 化 人:cao_cong联系方式:cao_cong_hx@yahoo.com.cn汉化日期:2005.11.28汉化说明: 本来是想等 OllyDBG 2.0 出来再汉化的,可看到dyk158兄弟的修改版说明中对我原来汉化版本的汉化质量提了一点小小的意见,想想也是,我原来的汉化版是OllyDBG 1.10 的最终版本刚出来时汉化的,距今已经一年多了也没有更新过,当时只顾不出因汉化造成的Bug,汉化嘛确实不咋的。看到BoOMBoX/TSRh2004他们制作的美化界面,确实也觉得漂亮,最后决定再出个汉化版本。这个版本的汉化加测试、修改花了我整整两个星期的业余时间,其中的非标字符对照文本有4000多行,看一遍都半天。这个版本中的所有翻译我都重新过了几遍,绝大部分都重新翻译过,力求做到准确,希望能给大家一个比较完美的汉化版本。在制作过程中参考了TT小组翻译的OllyDBG帮助及dyk158修改、聆风听雨汉化的ODbyDYK修改版,主要是想让翻译更准确一点,能让新手把汉化版和TT小组汉化的帮助文档对照起来学习。在此对以上提到的各位表示衷心的感谢! 这个软件汉化起来确实是个苦差事,不光是要翻译的资源多,还有一个重要的方面就是稍不留神就会出现汉化引起的Bug。经常是用原版来调试汉化版找问题,象原来菜单上的“&Window”汉化后会出错,还是调试后才知道原来它内部加载菜单时还有个这个“&Window”,只有两个都汉化才不会出错。另外其它的许多问题都只好靠调试来解决。原来汉化时又没有把要注意的地方写下来,这次光测试就花了好几天。 这个汉化版本除因汉化必要而打补丁外,我不准备再对它打任何补丁。一是我怕打补丁影响 OllyDBG 的兼容性;二是已经有Fly和dyk158他们做了,我想我自己再做的话也不会比他们做的更好;三是我实在是感到太累了!如果大家要想要修改的版本的话,推荐使用freecat兄弟制作的AutoPath,我把这个插件放在 FixOD 目录下,我把freecat兄弟发布时所用的说明也放在同一目录下,大家可以根据说明来使用这个插件改造你的OllyDBG。 在这里我要感谢看雪论坛上的看雪老大和论坛上各位兄弟的支持,正是有了他们的测试和建议,经过多次修正后,才有了今天的这个最终版本,由衷的感谢看雪论坛上的各位兄弟!汉化第二版主要更新:1、界面采用 BoOMBoX/TSRh2004 制作的美化界面,主要为了好看一点。2、绝大部分句子都重新翻译过,力求做到准确。3、配置文件中除字体、语法高亮、颜色这几个部分保留为中文外,其它的都恢复为英文。保留字体、语法高亮、颜色这几个部分为中文的目的是因为我发现若先运行过英文版配置好后,汉化版中对应这几个部分的一些菜单也会取原英文版配置中的英文字串,而不是汉化过的字串。我觉得翻译后既能保持与英文版的兼容性,又能让英文版与中文版的界面等互不干扰。4、dyk158 建议我把配置文件中的字体、语法高亮、颜色这几个部分恢复为英文,我专门做了个恢复为英文配置的补丁(如果你以前运行过英文版进行了相应配置,则补丁后的汉化版本对应这几个部分的相应菜单将会显示英文,若你是用打过这个补丁的汉化版本生成配置文件,则相应菜单将会显示中文)放在英文配置补丁目录下,需要字体、语法高亮、颜色这部分也用英文配置的朋友可以把这个补丁放到我做的汉化版的安装目录,选择 Ollydbg.exe 补丁就可以了。这个补丁同样适用于原版界面的汉化版本。5、上一版中部分未汉化的内容这次除了不能汉化的外,基本上都已汉化。6、另有一个界面未作美化的汉化版放在原版界面目录,可以按自己的喜好选择使用哪一个。7、FixOD 目录下放的是用 freecat 的 AutoPath.dll 打过补丁的 OllyDBG,使用前请先备份好你原来的Ollydbg.exe文件,再把这个目录下的Ollydbg.exe、AutoPath.dll、AutoPath.ini复制到你的OllyDBG安装目录下就可以了。在上一版的基础上,插件做了如下更新:1、脚本插件 ODbgScript.dll (v1.23 汉化版)2、快捷命令插件 CmdBar.dll (v3.10.109c 汉化版,这个版本有支持运行 OllyScript 脚本的命令:OSC)3、标签插件 Labeler.dll (v1.33.108 汉化版)4、图表插件 OllyFlow.dll (v0.71 汉化版,我从IDA中提取了个wingraph32.exe放在插件目录下,用于配合这个插件)5、断点管理 olly_bp_man.dll (汉化版,在我机器上不能用,放在备用目录)6、字串参考修改版本 ustrrefadd.dll (汉化版)另外还添加了dyk158 汉化的两个插件:1、脱壳插件 OllyDump.dll (V3.00.110 dyk158 汉化版)2、脱壳插件 pedumper.dll (v3.03 dyk158 汉化版) 推荐大家试用一下这两个插件:ApiBreak 插件,用于在对话框、字串、注册表、时间、内存等 API 函数上设置断点,还可设置万能断点,简单易用;GODUP 插件,包含 Map 载入器、资源查看器、进程查看器、IDA 签名载入程序及自带的一个记事本这五个工具。感觉它自带的记事本用来在调试时记一些东西比较方便。 如果你以前没用过OllyDBG的话,我要提醒你使用前先在菜单的 选项->界面->目录 中把插件和 UDD 的路径设置好,以免影响使用! 此汉化版中的插件除了一个 PuntosMagicos.dll 插件没汉化外(我实在是弄不是哪国语言),其它的插件都已汉化。目录下的OLLYDBG.HLP帮助文件是由TT小组翻译的中文帮助,在此对TT小组的辛勤劳动表示感谢!(OLLYDBG_EN.HLP为原版英文帮助)声明: 1.本汉化软件包内的所有英文及其他语言的源程序的版权归原作者(公司)所有。 2.本人不对使用本汉化软件造成的任何情况的损失负责。 3.本汉化软件仅供学习研究之用。严禁用于商业用途。本人不对使用本汉化软件造成的任何法律纠纷负责。 4.如果你对本汉化软件有什么建议请联系我。 5.请在转载时保留此汉化版的完整性。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧