用Proe二次开发包开发出来的应用软件有时候需要保存一些变量的值,不然每次重新启动Proe后都需要重新设置一边效率很低。但是如何实现呢?
我先利用Pro/toolkit API函数可定无法实现,必须要读取磁盘文件来实现。其实有很多中法式来实现磁盘文件的读取与写入。
1)利用C语言提供的,但是自己需要编写太多的代码,而起很复杂。
2)利用C++的文件类来实现,也很复杂而且需要对C++很熟悉。
3)利用Windows API函数来说实现,这个就是利用Windows本身的资源来实现。Windows中配置文件后缀为.ini,文件格式对我们来说无所谓,只要
能实现功能就行。
下面介绍两个读取和写入.ini配置文件的函数。
BOOL WritePrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpString,
LPCTSTR lpFileName
);
其中各参数的意义:
LPCTSTR lpAppName 是INI文件中的一个字段名.
LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.
LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的.
LPCTSTR lpFileName 是完整的INI文件名.
设现有一名学生,需把他的姓名和年龄写入 c:studstudent.ini 文件中.
CString strName,strTemp;
int nAge;
strName=”张三”;
nAge=12;
::WritePrivateProfileString(“StudentInfo”,”Name”,strName,”c:studstudent.ini”);
此时c:studstudent.ini文件中的内容如下:
[StudentInfo]
Name=张三
要将学生的年龄保存下来,只需将整型的值变为字符型即可:
strTemp.format(“%d”,nAge);
::WritePrivateProfileString(“StudentInfo”,”Age”,strTemp,”c:studstudent.ini”);
DWORD GetPrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);
其中各参数的意义:
前二个参数与 WritePrivateProfileString中的意义一样.
lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.
lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.
nSize : 目的缓存器的大小.
lpFileName : 是完整的INI文件名.
现要将上一步中写入的学生的信息读入程序中.
CString strStudName;
int nStudAge;
GetPrivateProfileString(“StudentInfo”,”Name”,”默认姓名”,strStudName.GetBuffer(MAX_PATH),MAX_PATH,”c:studstudent.ini”);
执行后 strStudName 的值为:”张三”,若前两个参数有误,其值为:”默认姓名”.
在启动插件的时候读取.ini文件中参数并付给全局变量就行了,同样还可实现又好的设置界面。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>