zoukankan      html  css  js  c++  java
  • 关于C#客户端引用C++ dll的问题

      近期在做项目的过程中需要在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#类库。

  • 相关阅读:
    apk反编译
    Hybrid App
    Hybrid App
    Hybrid App
    Hybrid App 介绍
    android-adb
    .java生成dex文件
    android Activity launch mode 知识点总结
    2018.10.15学习总结
    2018.10.12
  • 原文地址:https://www.cnblogs.com/Robert-huge/p/4028269.html
Copyright © 2011-2022 走看看