位置:首页 > 软件操作教程 > 工业产品软件 > Pro/Engineer > 问题详情

Proe插件如何读取配置文件

提问人:刘团圆发布时间:2021-09-10

用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文件中参数并付给全局变量就行了,同样还可实现又好的设置界面。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部