C#调用 
WritePrivateProfileString写INI文件,程序中设断点监视,此函数的返回值为非零,表明已经写入成功了,可为什么我的INI文件里仍然是空值呢?!

解决方案 »

  1.   

    //引入写ini文件信息的系统函数
    [DllImport("kernel32")]
    private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);//引入读ini文件信息的系统函数
    [DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);  public static string getConfigPath()
      {
                //找到Config文件的全名
                String strTemp = System.Windows.Forms.Application.StartupPath;
                StringBuilder sbConfig = new StringBuilder();
                sbConfig.Append(strTemp);
                sbConfig.Append("\\");
                sbConfig.Append("Config.ini");            //将Config文件全名转化为字符串返回
                return sbConfig.ToString();
     }
    string strConfigPath = getConfigPath();
    string strUserName = this.txtUserName.Text;
    string strUserPass = this.txtPassword.Text;                
    WritePrivateProfileString("Database", "LogID", strUserName, strConfigPath);
    是不是你给的节点名不存在?
                   
      

  2.   


    就是先创建了个空的INI文件,然后往里写进数据,第一次节点肯定不存在啊???!
    难道还先要手动添一下节点吗??
      

  3.   

    不去要这么麻烦的,在创建的过程中就可以直接写了
    例如:
    WritePrivateProfileString("节点", "QQ", "123456789", "C:\\1.ini"); 
    这样就会在C盘建立个1.ini文件里面的内容如下:
    [节点]
    QQ=123456789
      

  4.   

    写INI我看你干脆自己写得了,还调API多费事
      

  5.   

    .Net不推荐使用INI,建议使用XML
      

  6.   


    有点不明白,我用这句话不能写进去,还是空白
    WritePrivateProfileString("节点", "QQ", "123456789", "C:\\1.ini");