2007年4月29日

在C#中调用VC编写的dll库

摘要: 转自[DotNet笔记] 如何在C#中使用C/C++写的DLL。举一个我做过的例子说明:建立VC工程DllDemo,建立的时候选择MFC AppWizard(dll),选择Regular Dll using shared MFC Dll或者MFC Extension Dll。现在可以写一个函数代码,在DllDemo.cpp文件中添加这些代码。也可以使用新的文件添加代码;extern “C“ __d... 阅读全文

posted @ 2007-04-29 16:55 BugHunter 阅读(847) 评论(1) 推荐(0) 编辑

2007年4月27日

C#调用C++编写的COM DLL

摘要: 在C#调用C++编写的COM DLL封装库时会出现两个问题: 1. 数据类型转换问题 2. 指针或地址参数传送问题 首先是数据类型转换问题。因为C#是.NET语言,利用的是.NET的基本数据类型,所以实际上是将C++的数据类型与.NET的基本数据类型进行对应。 例如C++的原有函数是: int __stdcall FunctionName(unsigned char... 阅读全文

posted @ 2007-04-27 01:15 BugHunter 阅读(1687) 评论(0) 推荐(0) 编辑

2007年4月24日

C# 中的委托

摘要: C# 中的委托类似于 C 或 C++ 中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与 C 或 C++ 中的函数指针不同,委托是面向对象、类型安全的,并且是安全的。 委托声明定义一种类型,它用一组特定的参数以及返回类型封装方法。对于静态方法,委托对象封装要调用的方法。对于实例方法,委托对象同时封装一... 阅读全文

posted @ 2007-04-24 17:07 BugHunter 阅读(523) 评论(0) 推荐(0) 编辑

2007年4月23日

IP头和TCP头数据结构(C#版)

摘要: 转自[DotNet笔记]IP头和TCP头数据结构(C#版) 1 public struct ip_hdr //IP头 2 { 3 public byte h_lenver; //4位首部长度+4位IP版本号 4 public byte tos; //8位服务类型TOS 5 public ushort tota... 阅读全文

posted @ 2007-04-23 16:41 BugHunter 阅读(562) 评论(0) 推荐(0) 编辑

struct和byte[]相互转换(用Marshal类实现)

摘要: 转自[DotNet笔记]相当于序列化与反序列化,但是不用借助外部文件1、struct转换为byte[] 1static byte[] StructToBytes(object structObj) 2 { 3 int size = Marshal.SizeOf(structObj); 4 IntPtr buffer = Marsha... 阅读全文

posted @ 2007-04-23 16:16 BugHunter 阅读(1130) 评论(0) 推荐(0) 编辑

2007年4月18日

一个封装的异步Socket客户端

摘要: [转自听香水榭]一个封装的异步Socket客户端 1using System; 2using System.Collections; 3using System.Configuration; 4using System.Net; 5using System.Net.Sockets; 6using System.Text; 7 8namespace Beijing.Traffic... 阅读全文

posted @ 2007-04-18 10:13 BugHunter 阅读(4401) 评论(0) 推荐(0) 编辑

导航