关闭

关于C#客户端引用C++ dll的问题

发表于:2014-10-22 11:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:华天虎    来源:51Testing软件测试网采编

  近期在做项目的过程中需要在Winform客户端项目引用由C++编译的DLL,于是对相关的内容进行了一些研究,有几点心得总结如下。
  第一步是制作要引用的类库:
  (1)首先拿到C++的dll,需要注意的是,dll里面开发的方法必须符合C风格,不符合可以向外再封装,否则无法找到EntryPoint。
  (2)然后在开始菜单按照路径  "Microsoft Visual Studio 2008/Visual Studio Tools/Visual Studio 2008命令提示"打开Visual Studio 2008命令提示的控制台工具,
  输入dumpbin -exports [C++ dll的路径],这里"C++ dll的路径"可以左键按住dll拖入控制台产生。按enter键就会出现C++ dll内公开的方法及对应的EntryPoint。
  (3)这里列出类库中对登陆接口的引用,其他方法的引用与之相似。
  //登录
  [DllImport("RestApiClient4CSharp", EntryPoint="?login_4CSharp@@YA_NPBD000PADI@Z")]
  public static extern bool login_4CSharp(string server, string login_id, string password, string license,
  StringBuilder errBuf, UInt32 errBufSize);
  (4)将引用的C++ dll和lib文件设置为内容始终复制。
  (5)再做一些测试程序测一下,类库就制作完成了。
  第二步就是Winform客户端对C#类库的引用:
  这里,我碰到一个问题,明明是项目中的另一个类库项目需要引用此C#类库,可是引用之后,总是报错"找不到xxx.dll模块",后来发现,在启动项目中也必须引用一下此C#类库。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号