最近的文章列表

C#动态地调用Win32 DLL中导出的函数_C/C++和C#中的数据类型的对应表
关于这种C#中调用Win32 DLL中导出的函数的方法有很多种了,本文做个小结。大致有两种情况:编译时已知DLL文件名和函数名运行时才能获知DLL文件名(函数名)编译时已知DLL文件名这种情况下可以简单的使用Pinvoke机制,使用DllImport如:[System.Runtime.InteropServices.DllImport("kernel32.dll")]public static extern bool Beep(uint freq,uint time);运行时才能获知DLL文件名有两种解决方案:首先,可以想到使用Win32 API中LoadLibrary和GetProcAddress,象在C/C++中一样来动态调用DLL中函数,这里就不细说了;其次,考虑如
2011/3/22 Comments:
C# 调用 C/C++ DLL 教程一
直接从 C# 调用 DLL 导出若要声明一个方法使其具有来自 DLL 导出的实现,请执行下列操作:使用 C# 关键字 static 和 extern 声明方法。将 DllImport 属性附加到该方法。DllImport 属性允许您指定包含该方法的 DLL 的名称。通常的做法是用与导出的方法相同的名称命名 C# 方法,但也可以对 C# 方法使用不同的名称。还可以为方法的参数和返回值指定自定义封送处理信息,这将重写 .NET Framework 的默认封送处理。示例 1本示例显示如何使用 DllImport 属性通过调用 msvcrt.dll 中的 puts 输出消息。// PInvokeTest.csusing System;using System.Runtime.InteropServi
2011/3/22 Comments:
未能添加对""的应用。请确保此文件可访问并且是一个有效的程序集或COM组件
C#添加引用不成功,提示: 未能添加对HD.dll的引用。请确保此文件可访问并且是一个有效的程序集或COM组件我需要用到这个Dll文件中的接口函数 非.NET的dll需要DllImport。 C#添加引用需要这个dll本身是.net的程序集,或者是一个COM组件。如果是一个标准的C导出Dll,那么需要用DllImport导入函数,参考互操作内容实际调用类似于这样的代码 public class MPwdMngAPI { [DllImport("PwdMng.dll", CharSet = CharSet.Ansi, EntryPoint = "SetUserFirstLogin")] public extern static bool Rese
2011/3/22 Comments:
asp.net的wap站输出WML以及相关设置
选择用ASP.NET开发WAP站点,实在简单,就是一个移动控件的运用,根本不用懂WML语法.唯一不同的,就是一个ASPX文件可以支持多个FORM,不同FORM之间可以切换,最后ASP.NET根据访问的设备,输出不同的内容,如果用IE访问就输出HTML,手机访问,输出WML。ASP.NET把一些常有的模拟器的配制信息用正则表达式写在Machine.config里,他们只是一个公司的产品:需要下载,配制文件驱动更新:现在最新版本是请到这里下载:http://www.microsoft.com/downloads/details.aspx?FamilyId=02FA15FE-40D9-4DCE-9BB1-4DD61A5B7CCB&displaylang=en但是,即使驱动更新以后,还是一些
2011/3/2 Comments:
【转】抛砖引玉:我看微软.NET各子技术领域之应用前景

从2002年发布.NET 1.0,历经8年发展,.NET发展到了4.0,已经成为一个庞大而复杂的软件开发与运行平台,其架构日益复杂,其应用领域也在不断地扩展,包容了一堆的子技术领域。在.NET 4.0即将发布之际,回顾一下已发布的各项.NET技术,看看哪些技术用得很火,哪些被打入冷宫,再猜猜.NET 4.0中可能会有哪些技术会得到青睐,是件有意思的事。1 桌面应用程序开发技术( Windows Form和WPF)。  在.NET桌面应用程序开发领域,Windows Form是前辈,相比以前的老祖宗MFC,其开发效率高得多,即使比一向以高效率著称的VB、Delphi之类,也不逊色,因此在很长的一段时间内,Windows Form成为.NET 桌面领域的主流技术,而且有一大批各式各样的第3方控件

2011/2/17 Comments:
Dotnet_log4net 介绍说明
null
2011/2/16 Comments:
IO 读取txt xml 文件问题:正由另一进程使用,因此该进程
SyntaxHighlighter.config.clipboardSwf = ’/Js/Syntax/clipboard.swf’;SyntaxHighlighter.all();/// /// 将指定信息添加到文件中,如果指定文件不存在就创建,存在就覆盖。/// /// 文件名(完整路径)/// 需要写入的信息public static void WriteToFile2(string fileName, string msg){try{FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);StreamWriter swWrite
2011/2/10 Comments:
基于asp.net的Web开发架构探索
问题由来最近在研究适合团队开发的web架构解决方案,该架构即要适合分工协作又要有一定扩展性,适合不同的数据库需要,因此我查阅了一些资料,初步构想出了一套架构,请各位多多指教。 探索web开发架构最经典莫过于三层架构,表示层、逻辑层、数据处理层。数据访问层:其功能主要是负责数据库的访问。业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关。表示层:是系统的UI部分,负责使用者与整个系统的交互。理想的状态是表示层不应包括系统的业务逻辑。这些是经典的解释,如果要适合不同的数据库则需要加入工厂模式,里面用面向接口的方式进行多态调用。是不是这有点像petshop了。所以架构的初步设想是这样:下面以获取用户信息为例,简述这个架构的流程:(以下为类似petshop的经典做法,了解的可以略过)ste
2011/1/26 Comments:
了解ASP.NET网页生命周期事件和Global.asax来解决关闭浏览器触发网页动作
怎么在浏览器(多浏览器IE,FF,GG等)关闭网页时,触发一个用户的下线动作执行。下边先看一下Asp.Net的网页事件有哪些?网页事件典型的使用方式PreInitPreInit事件是网页生命周期中非常早起的一个事件,在PreInit事件触发之后,就会加载用户设置信息与网页主题。我们通常使用PreInit事件来执行下列处理:l 检查IsPostBack属性,来确认网页是否为第一次被处理。l 创建或重新创建动态控件。l 动态设置一个母版页。l 动态设置Theme属性。l 读取或设置用户设置文件属性值。Init在所有的控件都已经被初始化,而且所有的面板设置都已经应用之后,就会触发Init事件。可以使用此事件来读取或初始化控件属性。InitComplete此事件由Page对象触发。当网页初始化完成之
2011/1/26 Comments:
NeatUpload上传大文件有进度条
本控件不能在WebForm下运行,不然会出错:Brettle.Web.NeatUpload.MoveToOptions.Overwrite MoveToOptions没有引用 1.在VS工具箱中点右键选选择项&hellip;&hellip; 将Brettle.Web.NeatUpload.dll添加到工具箱。 2.新建web项目。将NeatUpload复制到项目根目录。 3.修改Web.config 在<configuration>里面加入 XML/HTML Code复制内容到剪贴板 <configSections><sectionGroup name="system.web"><section name=&
2011/1/17 Comments: