zoukankan      html  css  js  c++  java
  • 关于在VC++ 的MFC 下INI文件的生成和运用

    我们在编写程序的过程中,有很多要用到出始化,但有很多都写进了注册表,而我们在想修改或者查看的时候必须到注册表里去修改,而不是直接到一个程序目录下的ini文件里查看或者修改,怎么使可以直接生成的ini文件能写进Debug 呢?而不写进注册表.下面的程序可以帮助我们实现这个目的!!!!

      在应用程序类下的      * App::InitInstance()函数里加入下面的程序语句;

     char czProgName[MAX_PATH];
     CString czN;
     int  iNiValue=0;

     iNiValue= GetModuleFileName(0,czProgName,MAX_PATH);
     if(iNiValue<= 0)
      return TRUE;
     czProgName[strlen(czProgName)-3] = '/0'; 
     strcat(czProgName,"ini");

    // 这个GetModuleFileName() 的作用是得到当前目录下的**.exe文件,所以我们要把后缀去掉,直接用strcat()函数把它改长ini后缀.

    //再清除Ini变量

       free((void*) m_pszProfileName);
       m_pszProfileName =_tcsdup(_T(czProgName));

     //清除注册表键值变量所分配的内存空间 .
     free((void*)m_pszRegistryKey);
     m_pszRegistryKey = NULL;

    加入上面的语句以后,我们就可以在需要的地方直接用:

    当然在使用的时候要定义:  

     CWinApp* theApp = NULL;

    theApp = AfxGetApp();

    然后直接用

    theApp ->WriteProfileString( , ,)函数写入ini文件.

    在需要读出的地方直接用  :

    theApp ->GetProfileString (       ,     ,     )函数直接读出;

    当然在读取整数的时候,我们可以分别用

    WriteProfileInt (    ,     ,  )和 GetProfileInt (    ,     ,  )进行实现.

    当你打开你的Debug 下的文件时,你可以看到一个*.ini文件了!!!!!!!!!!

    Life is like a box of chocolate, you never know what you are going to get.
  • 相关阅读:
    Orcle(条件查询、排序)
    Oracle(简介、基本查询)
    eclipse(配置jdk、tomcat、修改颜色)
    Oracle(安装Windows XP和Oracle)
    vue中ref的作用
    ES6-babel转码器
    如何正确移除Selenium中window.navigator.webdriver的值(转载)
    反爬虫之信息校验反爬虫
    反爬虫简述
    爬虫验证码识别(1) 图形验证码的识别
  • 原文地址:https://www.cnblogs.com/mars9/p/2344538.html
Copyright © 2011-2022 走看看