用Proe二次开发包开发出来的应用软件有时候需要保存一些变量的值,不然每次重新启动Proe后都需要重新设置一边效率很低。但是如何实现呢?
我先利用Pro/toolkit API函数可定无法实现,必须要读取磁盘文件来实现。其实有很多中法式来实现磁盘文件的读取与写入。
1)利用C语言提供的,但是自己需要编写太多的代码,而起很复杂。
2)利用C++的文件类来实现,也很复杂而且需要对C++很熟悉。
3)利用Windows API函数来说实现,这个就是利用Windows本身的资源来实现。Windows中配置文件后缀为.ini,文件格式对我们来说无所谓,只要
能实现功能就行。
下面介绍两个读取和写入.ini配置文件的函数。
一.将信息写入.INI文件中.
1.所用的WINAPI函数原型为:
BOOL WritePrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpString,
LPCTSTR lpFileName
);
其中各参数的意义:
LPCTSTR lpAppName 是INI文件中的一个字段名.
LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.
LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的.
LPCTSTR lpFileName 是完整的INI文件名.
2.具体使用方法
设现有一名学生,需把他的姓名和年龄写入 c:studstudent.ini 文件中.
CString strName,strTemp;
int nAge;
strName=”张三”;
nAge=12;
::WritePrivateProfileString(“StudentInfo”,”Name”,strName,”c:\stud\student.ini”);
此时c:studstudent.ini文件中的内容如下:
[StudentInfo]
Name=张三
要将学生的年龄保存下来,只需将整型的值变为字符型即可:
strTemp.format(“%d”,nAge);
::WritePrivateProfileString(“StudentInfo”,”Age”,strTemp,”c:\stud\student.ini”);
二.将信息从INI文件中读入程序中的变量.
1.所用的WINAPI函数原型为:
DWORD GetPrivateProfileString(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);
其中各参数的意义:
前二个参数与 WritePrivateProfileString中的意义一样.
lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.
lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.
nSize : 目的缓存器的大小.
lpFileName : 是完整的INI文件名.
2.具体使用方法:
现要将上一步中写入的学生的信息读入程序中.
CString strStudName;
int nStudAge;
GetPrivateProfileString(“StudentInfo”,”Name”,”默认姓名”,strStudName.GetBuffer(MAX_PATH),MAX_PATH,”c:\stud\student.ini”);
执行后 strStudName 的值为:”张三”,若前两个参数有误,其值为:”默认姓名”.
在启动插件的时候读取.ini文件中参数并付给全局变量就行了,同样还可实现又好的设置界面。
相关文章
- 2021-09-08BIM技术丛书Revit软件应用系列Autodesk Revit族详解 [
- 2021-08-11中文版 AutoCAD Mechanical 2005 机械制图基础教程PDF
- 2021-08-03Autodesk Revit机电应用入门篇 [王君峰 编著] 2013年P
- 2021-08-03Autodesk RevitStructure实例详解 [黄亚斌,徐钦 主编]
- 2021-08-03Autodesk RevitStructure2012应用宝典 [欧特克软件(中
- 2021-08-03Autodesk RevitMEP2014管线综合设计应用全彩 [柏慕进
- 2021-08-02Autodesk RevitMEP2012应用宝典 [欧特克软件(中国)有限
- 2021-08-02Autodesk RevitMEP2012管线综合设计应用全彩 [柏慕中
- 2021-08-02Autodesk RevitArchitecture实例详解 [黄亚斌,徐钦 主
- 2021-08-02Autodesk RevitArchitecture2014官方标准教程 [柏慕进