当前位置:编程学习 > C#/ASP.NET >>

C#调用dephi的dll之详解

C#调用dephi的dll用DllImport来调用的
一般是用非托管的
具体形式如下:[DllImport("WZFSE.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
下面紧接着他的申明函数
public static extern void InitDll(IntPtr handle, bool methodAddress);
申明一个函数就要引用下他的dll
IntPtr这个类型可以申明为其他语言的句柄,指针等。
若要实现其他语言类似C++的函数指针形式 这时我们考虑用C#的委托来实现

将dephi的窗体签入到自己的C#系统里 还有一点比较重要,我们是调用dephi的窗体,此时显示在我们C#窗体中会有dephi的窗体  

这时我们怎么办呢  怎么去除dephi中的窗体呢  这时我们就需要用API函数了 API函数在dephi有 C#中也有
在C#中是这么引用的 [DllImport("user32.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        public static extern void MoveWindow(IntPtr handler, int x, int y, int width, int height, bool repaint);

下面插入一个类 这里面包含了怎么引用dephi的dll 以及怎么申明

\代码
 1  public class CompliancePlatDLL
 2     {
 3         public static string strPath = "";
 4         /// <summary>
 5         /// 初始化
 6         /// </summary>
 7         /// <param name="handle"></param>
 8         /// <param name="methodAddress"></param>
 9         [DllImport("WZFSE.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
10         public static extern void InitDll(IntPtr handle, bool methodAddress);
11         /// <summary>
12         /// 加载相应的服务
13         /// </summary>
14         /// <param name="str"></param>
15         /// <param name="str2"></param>补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,