〖C#〗
文章平均质量分 82
叶帆
这个作者很懒,什么都没留下…
展开
-
VB控件在C#中的使用
第一步:在C#的工具条右击,在右键菜单上单击“选择项”选项,如下图第二步:在COM组件中,选中所需的控件即可(这点和VB中完全一样) 这时候,COM控件和C#控件就一样使用了。但是,VB中的一些特有的命令,如动态数组和C#有很大不同,请参考如下代码VB代码: dim lngData( ) as long call CP243Client1.ReadData(1,原创 2006-07-04 15:53:00 · 5533 阅读 · 1 评论 -
C#与IronPython脚本进行数据交互示例
单单执行脚本是没有什么意思的,最重要的是嵌入的脚本能和宿主语言进行交互,下面我就讲讲这方面的实现。 IronPython脚本最优秀的地方就是与C#(或者说.net框架集)几乎无缝集成,C#实现的类很容易就传入到脚本中去。(目前唯感遗憾的是,IronPython脚本还没有支持嵌入版,希望不远的的将来能实现嵌入式版本)。 这是宿主语言的代码:原创 2007-06-04 10:54:00 · 6754 阅读 · 2 评论 -
C# API方式串口读写
在调试ICU通信设备的时候,由于串口通信老出现故障,所以就怀疑CF实现的SerialPort类是否有问题,所以最后决定用纯API函数实现串口读写。先从网上搜索相关代码(关键字:C# API 串口),发现网上相关的资料大约来源于一个版本,那就是所谓的msdn提供的样例代码(msdn的具体出处,我没有考证),其它的代码大都是它的变种。其实这个示例代码是有问题的,也就是说DCB结构体声明原创 2007-11-21 21:22:00 · 12418 阅读 · 23 评论 -
Variant类型在各语言中的参数传递
几年前我用VB开发了一个西门子PPI通信控件,由于VB开发的控件是标准的COM组件,所以想当然的认为VC、C#、Delphi等开发语言可以非常容易的使用。前段时间由于该控件基于微软的MSCOMM控件,这个控件如果系统没有安装VB,单独注册好像很难成功,这害的一些没有装VB的用户,为了这个小控件必须安装一次VB,这实在是划算不来,所以直接用API串口函数进行了封装改进,这样不仅效率提高了,并且再原创 2007-12-14 00:08:00 · 13040 阅读 · 10 评论 -
C#文件方式读写结构体探析
最近一直在研究.Net Micro Framework字体文件(tinyfnt),由于tinyfnt文件头部有一段描述数据,所以很想定义一个结构体,像VC一样直接从文件中读出来,省得用流一个个解析很是麻烦。没有想到在C#中竟没有直接的指令,想必C#设计者认为提供了流和序列化技术,一切问题都可以迎刃而解了。在C#中结构体是一个比较复杂的东西,在此之上有很多需要设置的参数,否则原创 2007-12-22 22:03:00 · 5362 阅读 · 0 评论 -
FAT16文件系统解析(C#版本)
今天FAT文件系统总算告一个段落了,已经可以非常完美的读取包含FAT16文件系统的磁盘了。由于是采用C#编写,直接借鉴的代码很少,并且考虑到MF不支持二进制序列化,所以对数据结构的解析,是一个一个字节进行的,所以很耗费时间。下面就是程序运行后的结果(可以识别物理磁盘及物理磁盘的分区)。下图是用文件浏览器查看的结果。磁盘系统的MDR和DBR信息如下。为了便原创 2008-03-19 22:29:00 · 17131 阅读 · 3 评论 -
红外条码扫描器的另类使用C#版
3年前写了一篇《USB口的红外条形码扫描器的另类使用》,不过相关代码是VB编写,在这几年之间,有许多网友提出需要C#版的,起初还以为由VB修改C#应该很容易,最近研究了一下,发现C#和VB调用API的机制还是有所不同的,在迁移的过程中还是会遇到不少问题,所以我专门抽时间做了一个基于C#的程序。 【目前的条形码扫描器有点类似外接键盘(其实从消息传送上它就相当于一个键盘),把输原创 2009-05-03 22:22:00 · 14874 阅读 · 28 评论 -
爱因斯坦谜题:谁养鱼(C#版)
一个偶然的机会再次接触到了爱因斯坦谜题,一时来了兴致,用C#做了一个程序,看看到底是谁养鱼(大学毕业后接触过这道题,不过很遗憾,那时的我没有成为2%的人,所以不知道是谁在养鱼)?这道迷题出自1981年柏林的德国逻辑思考学院,据说世界上只有2%的人能出答案,就连大名鼎鼎的爱因斯坦也成为此题大伤脑。爱因斯坦谜题的中文表述是这样的:1. 有5栋5种颜色的房子2. 每一位房子的主人国籍原创 2009-09-27 22:48:00 · 18402 阅读 · 37 评论 -
微软借力.NET开源跨平台支持,布局物联网平台开发
物联网从云到端、到手机、到平板,各种软硬件平台,借助.NET开发,通过统一的开发工具,统一的开发语言,花最小的代价,完成整体开发--至少这是目前我所看到的,最诱人的前景。原创 2014-11-13 23:07:30 · 5944 阅读 · 3 评论 -
【Windows 10 IoT - 1】Window 10系统安装(树莓派 Pi2)
微软Build 2015大会上,Windows 10系统平台一统天下(电脑,平板,手机),甚至安卓、iOS等程序都可以移植运行。我们本篇文章关注的是Windows 10 IoT系统,这个和物联网非常相关的系统,本篇文章主要介绍在树莓派2上运行Windows 10.原创 2015-05-03 23:59:18 · 16928 阅读 · 2 评论 -
C#嵌入IronPython脚本示例(hello world)
随着项目的逐渐收尾, 对IronPython脚本也越来越熟悉,这里为IronPython脚本感兴趣但不入门的朋友写几篇使用心得,这是第一个:最简单的hello world程序。 首先,我们必须有一个IronPython脚本引擎库(IronPython.dll),我用的版本是V1.0,你可以在网上直接下到相关源码,编译后即生成IronPython.dll。原创 2007-06-01 15:08:00 · 9874 阅读 · 2 评论 -
C#GDI+图元组态和IronPython脚本应用之LED影像系统
这段时间一直进行LED影像系统紧张的开发工作,目前成绩还是非常“斐然”的,终于有了一点透气的机会:) 该系统从技术角度来说包括三点:一是图元组态(这点和普通的组态软件没有什么区别,由于面对的用户技术层次相对较低,所以把原来嵌入式组态修改属性的属性列表,修改为属性面板,以直观的方式修改组件属性);二是图片特效制作,图片特效主要是淡入淡出、旋转、晶格、移动、放缩等等;原创 2007-05-28 09:06:00 · 10110 阅读 · 7 评论 -
WinCE 4.2(.net精简框架集)下的图形双缓存处理
在上位机Windows操作平台( .net 2.0框架集)下实现图形双缓存有很多办法,每种办法在上位机都有很好的效果,但是很不幸,在WinCE4.2操作系统(.net 2.0精简框架集)下这些方法要么不支持,要么效果很差(还是闪烁的厉害)。在上位机中,一般都有这么几种办法:1、应用程序中使用双缓冲的最简便的方法是使用 .NET Framework 为窗体和控件提供的默认双缓冲,原创 2006-11-21 21:49:00 · 6653 阅读 · 3 评论 -
WinCE平台下C#引用API(GDI)一个值得警惕的内存泄漏
由于C#精简框架集绘图函数不支持圆角矩形,所以引用了相关的API。 [DllImport("//windows//coredll.dll", EntryPoint = "RoundRect")] private static extern int CeRoundRect(IntPtr hdc, int X1, int Y1, int X2, int Y2, int X3, int原创 2006-12-05 09:30:00 · 19299 阅读 · 3 评论 -
如何用C#显示竖排文字?
看这个题目,应该觉的这个问题不难,刚开始我也是这么想,可是目前我手头上的参考资料上没有一个介绍竖直显示文字的,上网查资料只发现一个有用的,可是实现起来比较麻烦,需要进行坐标转换,旋转,还得平移,没办法,为了实现下图Y方向坐标的标注,只好这样了,代码如下: //设置旋转中心点 pb_Graphics.TranslateTransform(panelRuleY.Width原创 2006-12-23 16:26:00 · 8067 阅读 · 1 评论 -
DLL(MFC)通过Window消息向C#程序传递数据
这是我在用C#开发IOServer遇到的一个问题,该程序需要用到原先用MFC开发的DLL,最大问题是该dll运行过程中的一些信息,通过window消息向指定的hwnd(窗体句柄)发送数据。数据的指针放在WParam参数里,LParam参数是数据的类型信息。 C#提供 m.GetLParam()函数,可惜我的数据放在WParam参数里(这个还不能修改,否则原有程序就无法运行原创 2007-01-07 22:12:00 · 5785 阅读 · 5 评论 -
同样指令bmp.LockBits不同平台(Windows/WinCE)获取位图的数据不同
最近做了一个获取位图(24位位图)数据的程序,代码如下:Bitmap bmp = new Bitmap(BmpFile); //获取位图的数据 System.Drawing.Imaging.BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), System.Drawing.Imaging原创 2007-02-02 11:40:00 · 4259 阅读 · 2 评论 -
.net精简框架集下的ini文件读取(C#)
无论是.net框架集还是.net精简框架集都能非常完美的支持XML文件,并且微软也强烈建议用xml文件取代ini文件,但是在工控领域大部分的工程都是采用ini文件配置的系统信息的。 以前的隧道管理系统是采用ini文件配置信息的,为了实现兼容,只好在下位机也采用ini文件配置信息。由于WinCE平台不提供ini文件读取的api函数GetPrivateProfileSt原创 2007-03-16 11:05:00 · 6808 阅读 · 4 评论 -
【C#】串口操作实用类
做工业通信有很长时间了,特别是串口(232/485),有VB/VC/C各种版本的串口操作代码,这些代码也经过了多年的现场考验,应该说是比较健壮的代码,但是目前却没有C#相对成熟的串口操作代码,最近用Moxa的设备开发基于WinCE5.0的串口操作代码,所以就扩充完善了一下串口操作,特别是SendCommand函数,这是我比较常用的主从通信代码,不喜欢用事件或线程接数据,在规定的超时原创 2007-03-27 19:32:00 · 29857 阅读 · 36 评论 -
共享内存操作类(C#源码)
VC++的共享内存操作代码实现起来相对比较容易,但是用C#语言来实现,就有一定难度,由于工作需要,把以前VC开发的共享内存代码要用C#实现,别说,还费了不少周折,毕竟C#操作API函数和地址指针不是那么直接,还好,总算完成了,效果还不错。 共享内存操作类: using System;using System.Collections.Generic;u原创 2007-07-30 21:55:00 · 21708 阅读 · 11 评论 -
16进制字符串转数字(C/C++,VB/VB.net,C#)
这个问题看是很简单,但是在不同语言中实现的方式却千差万别,如果不知道方法,还真是麻烦,我就是在C#中遇到该问题,让我费了很大的周折,才在msdn查到。一、16进制字符串转数字 1、C/C++ I、最简单的办法:sscanf(“12AB”,,”%x”,&lngHex); //字符也可以为”0x12AB” II、有个朋友,自行编写函数实原创 2007-08-15 13:09:00 · 14718 阅读 · 1 评论 -
【物联网云端对接-3】通过MQTT协议与微软Azure IoT Hub进行云端通信
在上一篇文章《通过MQTT协议与阿里云物联网套件进行云端通信》中,我们介绍了通过MQTT对接阿里云的物联网套件。其实同样的代码,稍加调整也可以对接到微软Azure IoT hub上,不过需要注意的是,设备的认证机制是不一样的。原创 2017-08-21 08:24:50 · 6301 阅读 · 0 评论