[ 来源:http://www.it55.com | 作者: | 时间:2007-12-24 | 收藏 | 推荐 ] 【大 中 小】
return i*10;
}
使用命令行编译 CM.cs:
csc CM.cs
这将创建可执行文件 CM.exe。
文件:CM.cs
// cm.cs
using System;
using System.Runtime.InteropServices;
public class MyClass
{
[DllImport("Cmdll.dll")]
public static extern int MyMethod(int x);
public static void Main()
{
Console.WriteLine("MyMethod() returns {0}.", MyMethod(5));
}
}
运行此程序,MyMethod 将值 5 传递到 DLL 文件,该文件将此值乘以 10 返回。
运行结果:MyMethod() returns 50.
IntPtr 类型的说明
对于平台调用,应让参数为 IntPtr 类型,而不是 String 类型。使用 System.Runtime.InteropServices.Marshal 类所提供的方法,可将类型手动转换为字符串并手动将其释放。
IntPtr 类型被设计成整数,其大小适用于特定平台。
在 32 位硬件和操作系统中将是 32 位;
在 64 位硬件和操作系统中将是 64 位。
IntPtr 类型由支持指针的语言使用,并作为在支持与不支持指针的语言间引用数据的一种通用方式。它也可用于保持句柄。例如,IntPtr 的实例广泛地用在 System.IO.FileStream 类中来保持文件句柄。
IntPtr 类型符合 CLS,而 UIntPtr 类型却不符合。只有 IntPtr 类型可用在公共语言运行库中。此类型实现 ISerializable 接口。
其中引用了微软官方的部分例子,特此声名。希望多多指教,共同进步!
(编辑:IT资讯之家 www.it55.com)