设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网络编程 >> C#应用 >> 在C#中加载自己编写的动态链接库
精品推荐
C#应用点击TOP10
·c#操作word表格
·用C#实现木马程序
·C#操作xml文件入门
·C#反射实例讲解
·C#编写的windows计算器-源代码
·在C#中应用哈希表(Hashtable)
·C#中连接DataTable的方法
·C#实现Word中表格信息读取
·c#中的委托和事件的简单实例
·用C#程序监控并显示CPU状态信息
网络编程点击TOP10
·ASP.NET 程序中常用的三十三种代码
·CHK文件恢复工具
·.NET 初 级 读 本
·c#操作word表格
·我的.NET书架 (入门篇)
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·从零开始学ASP.NET(基础篇)
·用C#实现木马程序
·十天学会ASP.net之第一天
·官方水晶报表 .NET 应用程序实例下载 (C#、Visual C++.NET)
精选专题

在C#中加载自己编写的动态链接库

作者: 来源:http://www.xgdown.com/ 时间:2006-12-13 12:01:48

在C#中加载自己编写的动态链接库(3)   }
  运行时调用失败,不能继续执行。
  
  第三步,修改动态链接库实现,将b修改为双重指针:
  
  LIBEXPORT_API char *mySum(char *a,char **b){sprintf((*b),"%s",a); return *b;}
  C#导入定义:
  
  public class RefComm
  {
  [DllImport("LibEncrypt.dll",
       EntryPoint=" mySum ",
       CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)]
       public static extern string mySum (string a, ref string b);
  }
  在C#中调用测试:
  
  string strDest="";
  string strTmp= RefComm. mySum("12345", ref strDest);
    运行查看结果 strTmp 和 strDest 均为"12345",调用正确。第三步实现了函数出口参数正确输出结果。
  
  第四步,修改动态链接库实现,实现整数参数的输出:
  
  LIBEXPORT_API int mySum(int a,int b,int *c){ *c=a+b; return *c;}
  C#导入的定义:
  
  public class RefComm
  {
  [DllImport("LibEncrypt.dll",
       EntryPoint=" mySum ",
       CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)]
       public static extern int mySum (int a, int b,ref int c);
  }
  在C#中调用测试:
  
  int c=0;
  int iSum= RefComm. mySum(2,3, ref c);
  运行查看结果iSum 和c均为5,调用正确。
    经过以上几个步骤的试验,基本掌握了如何定义动态库函数以及如何在 C# 定义导入,有此基础,很快我实现了变长加密函数在 C# 中的调用,至此目标实现。
  
  三、结论
    在 C# 中调用 C++ 编写的动态链接库函数,如果需要出口参数输出,则需要使用指针,对于字符串,则需要使用双重指针,对于 C# 的导入定义,则需要使用引用(ref)定义。
    对于函数返回值,C# 导入定义和 C++ 动态库函数声明定义需要保持一致,否则会出现函数调用失败。定义导入时,一定注意 CharSet 和 CallingConvention 参数,否则导致调用失败或结果异常。运行时,动态链接库放在 C# 程序的目录下即可,我这里是一个 C# 的动态链接库,两个动态链接库就在同一个目录下运行。

 

共3页 9 7 [1] [2] [38 :>

在C#中加载自己编写的动态链接库 相关文章:
在C#中加载自己编写的动态链接库 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com