[DllImport("kernel32.dll")]使用
C#中读取ini配置文件 [DllImport("kernel32.dll")]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
/// <summary>
/// 保存配置文件
/// </summary>
/// <param name="strAppName">配置节点名称</param>
/// <param name="strKeyName">配置名</param>
/// <param name="strString">配置值</param>
/// <param
name="strFileName">配置文件名</param>
/// <returns></returns>
[DllImport("kernel32.dll")]
public static extern bool WritePrivateProfileString(string strAppName,
string strKeyName,
string strDefault,
string strFileName);
/// <summary>
/// 读取配置文件值
/// </summary>
/// <param name="strAppName">配置节点名称</param>
/// <param name="strKeyName">配置名</param>
/// <param name="strDefault">返回的默认值</param>
/// <param name="sbReturnString">返回StringBuilder Cache对象</param>
/// <param name="nSize">缓冲区大小</param>
/// <param name="strFileName">配置文件名</param>
/// <returns></returns>
[DllImport("kernel32.dll")]
public static extern bool GetPrivateProfileString(string strAppName,
string strKeyName,
string strDefault,
StringBuilder sbReturnString,
int nSize,
string strFileName);
/// <summary>
/// 读取配置文件中的指定配置节点,并返回整型值
/// </summary>
/// <param name="strAppName">配置节点名称</param>
/// <param name="strKeyName">配置名</param>
/// <param name="nDefault">返回的默认值</param>
/// <param name="strFileName">配置文件名</param>
/// <returns></returns>
[DllImport("Kernel32.dll")]
public static extern int GetPrivateProfileInt(string strAppName,
string strKeyName,
int nDefault,
string strFileName);
static void Main(string[] args)
{
string strAppPath = "";
string[] stringList = {"1234","b","c","d"};
foreach(string str in stringList)
{
Console.WriteLine(str);
}
WritePrivateProfileString("Settings", "Url", "http://dayrl.cnblogs.com%22,%22c//config.ini");
WritePrivateProfileString("Settings", "Time", "37","c:\\config.ini");
StringBuilder sb = new StringBuilder(256);
GetPrivateProfileString("Settings", "Url", "http://", sb, 256,"c:\\config.ini");
Console.WriteLine(sb);
GetPrivateProfileString("Settings", "Time", "10", sb, 256,"c:\\config.ini");
Console.WriteLine(sb);
int nReturnFromProFile = GetPrivateProfileInt("Settings", "Time", 0, "c:\\config.INI");
Console.WriteLine(nReturnFromProFile);
Console.ReadLine();
}
}
}
[DllImport("kernel32.dll")]使用的更多相关文章
- [DllImport("kernel32.dll")]是什么意思??
转载自:http://blog.csdn.net/sp6645597/article/details/8683737 1.简单说明 这叫引入kernel32.dll这个动态连接库(顾名思义就是一个链接 ...
- [DllImport("kernel32.dll")]
这叫引入kernel32.dll这个动态连接库. 这个动态连接库里面包含了很多WindowsAPI函数,如果你想使用这面的函数,就需要这么引入.举个例子: [DllImport("kerne ...
- C#直接使用DllImport外部Dll的方法
C#.Net调用基本格式:[DLLImport(“DLL文件路径”)]修饰符 extern 返回值类型 方法名称(参数列表) 如: [DllImport("kernel32.dll" ...
- 引用kernel32.dll中的API来进行串口通讯
串口通讯可以引出kernel32.dll中的API来操作,相关源码如下:using System;using System.Runtime.InteropServices; namespace Tel ...
- C#调用 kernel32.dll
调用方法: private string mFileName; //INI文件名 public OneGanttINI(string pFileName) { this.mFileName = App ...
- c# 利用动态库DllImport("kernel32")读写ini文件(提供Dmo下载)
c# 利用动态库DllImport("kernel32")读写ini文件 自从读了设计模式,真的会改变一个程序员的习惯.我觉得嘛,经验也可以从一个人的习惯看得出来,看他的代码编写习 ...
- kernel32.dll出错解决方案
kernel32.dll 一.什么是kernel32内核文件 kernel32.dll是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件.它控制着系统的内存管理.数据的输入输 ...
- 旧书重温:0day2【2】 实验:三种获取kernel32.dll基址的方法
0x01 找kernel32基地址的方法一般有三种: 暴力搜索法.异常处理链表搜索法.PEB法. 0x02 基本原理 暴力搜索法是最早的动态查找kernel32基地址的方法.它的原理是几乎所有的win ...
- windbg查找Kernel32.dll基址
一.首先准备好一个程序,运行起来,用windbg进行附加调试,由于每个windows下的程序都会加载kernel32.dll,因此,找基址的过程是一样的: 二.查看PEB地址: 法一.r $peb ...
随机推荐
- virtualbox安装xp虚拟机缺少驱动
下载驱动精灵完全版,自带万能驱动
- Checkbox 多选框
Checkbox 多选框 一组备选项中进行多选 ¶基础用法 单独使用可以表示两种状态之间的切换,写在标签中的内容为 checkbox 按钮后的介绍. 在el-checkbox元素中定义v-model绑 ...
- Color色彩
Element 为了避免视觉传达差异,使用一套特定的调色板来规定颜色,为你所搭建的产品提供一致的外观视觉感受. ¶主色 Element 主要品牌颜色是鲜艳.友好的蓝色. Blue #409EFF ¶辅 ...
- Java Map集合 遍历 五种方式(包含 Lambda 表达式遍历)
示例代码如下: package com.miracle.luna.lambda; import java.util.HashMap; import java.util.Iterator; import ...
- C# 中的字符串内插
$ 特殊字符将字符串文本标识为内插字符串. 内插字符串是可能包含内插表达式的字符串文本. 将内插字符串解析为结果字符串时,带有内插表达式的项会替换为表达式结果的字符串表示形式. 此功能在 C# 6 及 ...
- Java不可变序列String和可变序列StringBuilder、StringBuffer
String String变量是不可变的,源码里面用了final修饰. private final char value[]; String str = "Hello"; Syst ...
- python基础-并发编程之I/O模型基础
1. I/O模型介绍 1.1 I/O模型基础 更好的理解I/O模型,需要先回顾:同步.异步.阻塞.非阻塞 同步:执行完代码后,原地等待,直至出现结果 异步:执行完代码后,不等待,继续执行其他事务(常与 ...
- 【VS开发】浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)
UDP数据包长度 UDP数据包的理论长度 udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个 ...
- 第八周总结and实验
1.实验目的 理解异常的基本概念:掌握异常处理方法及熟悉常见异常的捕获方法. 2.实验要求 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用.掌握自定义异常类的方法. 3.实验 ...
- 第五周课程总结&实验报告(三)
实验三 String类的应用 实验目的: (1)掌握类String类的使用: (2)学会使用JDK帮助文档: 实验内容: 1.已知字符串:"this is a test of java&qu ...