代码如下: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”。请各位大大帮忙解决,谢谢~

解决方案 »

  1.   

    没开发过手机的程序呢,[DllImport("kernel32.dll")]不是windows API嘛~
    和Pockedt PC平台用的是同样的API吗??
      

  2.   

    嗯,我在bin\Debug下面运行生成的exe文件可以读取,在obj\Debug下面也可以读取,就是在模拟器里面不能读取,为何?是DLL文件放的不对吗?我在开发时把这个dll文件放在和FROM同级目录,可行?
      

  3.   

    ppc上哪有kernel32.dll?ppc上没有现成的读写ini的,需要自己实现,不过网上有别人实现的,搜一下吧
      

  4.   

    只是解析一个文本文件嘛,为什么要调用非托管API???
    直接用StreamReader或FileStream的解决不了吗?
      

  5.   

    请参考using System;
    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);
            }
        }
    }
      

  6.   

    Pocket PC 里没有kernel32.dll文件,使用其他方法如Stream
      

  7.   


    就是这么回事
    wince/ .net cf 里都没有 Kernel32.dll
      

  8.   

    kernel32.dll是Windows 9x/Me中非常重要的32位动态链接库文件。
    WinCe 体系的动态链接库跟9x,win32 是两码事。 
    还是老老实实用.net cf 提供的stream吧
      

  9.   

    没有该dll文件 肯定报错 换方法
      

  10.   

    谢谢各位解答,走入误区了?能否给个读写INI文件的例子?
      

  11.   

    WINCE下读取INI文件