代码如下:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;namespace cityManage
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{ } [DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); private void menuItem5_Click(object sender, EventArgs e)
{
string FileName = "E:\\conf.ini";
panel1.Visible = true;
StringBuilder temp = new StringBuilder(255);
GetPrivateProfileString("boot", "ip", "", temp, 255, FileName);
MessageBox.Show("ip:" + temp.ToString());
} private void label1_ParentChanged(object sender, EventArgs e)
{ } private void menuItem6_Click(object sender, EventArgs e)
{
}
}
}
我用的是VS.2003,智能手机软件开发,目标平台:Pocket PC 2003,用于测试的是:Pocket PC 2003 SE 仿真程序,错误如下:
无法找到 PInvoke DLL“kernel32”。请各位大大帮忙解决,谢谢~
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;namespace cityManage
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{ } [DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); private void menuItem5_Click(object sender, EventArgs e)
{
string FileName = "E:\\conf.ini";
panel1.Visible = true;
StringBuilder temp = new StringBuilder(255);
GetPrivateProfileString("boot", "ip", "", temp, 255, FileName);
MessageBox.Show("ip:" + temp.ToString());
} private void label1_ParentChanged(object sender, EventArgs e)
{ } private void menuItem6_Click(object sender, EventArgs e)
{
}
}
}
我用的是VS.2003,智能手机软件开发,目标平台:Pocket PC 2003,用于测试的是:Pocket PC 2003 SE 仿真程序,错误如下:
无法找到 PInvoke DLL“kernel32”。请各位大大帮忙解决,谢谢~
和Pockedt PC平台用的是同样的API吗??
直接用StreamReader或FileStream的解决不了吗?
using System.IO;
using System.Runtime.InteropServices;
using System.Text;namespace AA
{
/// <summary>
/// ini文件相关操作方法类
/// </summary>
public class INIClass
{
public string iniFilePath="";
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
/// <summary>
/// 构造方法
/// </summary>
/// <param name="INIPath">文件路径</param>
public INIClass(string INIPath)
{
iniFilePath = INIPath;
}
/// <summary>
/// 默认的构造函数
/// </summary>
public INIClass()
{
}
/// <summary>
/// 写入INI文件
/// </summary>
/// <param name="Section">项目名称(如 [TypeName] )</param>
/// <param name="Key">键</param>
/// <param name="Value">值</param>
public void IniWriteValue(string Section, string Key, string Value)
{
WritePrivateProfileString(Section, Key, Value, this.iniFilePath);
}
/// <summary>
/// 读出INI文件
/// </summary>
/// <param name="Section">项目名称(如 [TypeName] )</param>
/// <param name="Key">键</param>
public string IniReadValue(string Section, string Key)
{
StringBuilder temp = new StringBuilder(500);
int i = GetPrivateProfileString(Section, Key, "", temp, 500, this.iniFilePath);
return temp.ToString();
}
/// <summary>
/// 验证文件是否存在
/// </summary>
/// <returns>布尔值</returns>
public bool ExistINIFile()
{
return File.Exists(iniFilePath);
}
}
}
就是这么回事
wince/ .net cf 里都没有 Kernel32.dll
WinCe 体系的动态链接库跟9x,win32 是两码事。
还是老老实实用.net cf 提供的stream吧