• 如何在C#中调用外部的dll

  • 本文关于 c#
  • CodeGo.net > 如何在C#中调用外部的dll
  •  

    如何在C#中调用外部的dll



    c#
    如何在C#中调用“mpglib.dll”的几个主要函数?
    在c++中的部主要源码为:
    typedef struct {
    char c[40000];
    } mpstr;
    typedef BOOL (*INITMP3) (mpstr *mp);
    typedef void (*EXITMP3) (mpstr *mp);
    typedef int (*DECODEMP3) (mpstr *mp, char *inmemory, int inmemsize,
    char *outmemory, int outmemsize, int *done);
    INITMP3 InitMP3;
    EXITMP3 ExitMP3;
    DECODEMP3 decodeMP3;
    #define TEXT_INITMP3 "_InitMP3"
    #define TEXT_EXITMP3 "_ExitMP3"
    #define TEXT_DECODEMP3 "_decodeMP3"
    BOOL WMp3::InitLibrary()
    {
    // get mpglib.dll interface
    _hmpglibdll = LoadLibrary("mpglib.dll");
    if (!_hmpglibdll) {
    Error("Can't load mpglib.dll");
    return FALSE;
    }
    InitMP3 = (INITMP3) GetProcAddress(_hmpglibdll, TEXT_INITMP3);
    ExitMP3 = (EXITMP3) GetProcAddress(_hmpglibdll, TEXT_EXITMP3);
    decodeMP3 = (DECODEMP3) GetProcAddress(_hmpglibdll, TEXT_DECODEMP3);
    return TRUE;
    }
    然后使用其中一个函数
    InitMP3(&_mp);
    C#中应该如何写?
    本文地址 :CodeGo.net/1106210/
    -------------------------------------------------------------------------------------------------------------------------
    1.使用非托管 DLL 函数
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconconsumingunmanageddllfunctions.htm
    2. 在项目中添加引用;
    [C#] 使用 DllImportAttribute 标识 DLL 和函数。用 static 和 extern 修饰符标记方法===
    调用 DLL 函数参见
    使用非托管 DLL 函数
    说明如何使用平台调用来调用非托管的 DLL 函数用平台调用封送数据
    说明如何构造基于 .NET 的声明来用于平台调用。 虽然调用非托管 DLL 函数与调用其他托管代码基本相同,但仍有一些差异会使 DLL 函数初看起来颇为费解。本节包括以下主题,它们将说明某些与异常调用相关 本节内容
    传递结构
    说明用已定义的布局传送数据结构时实现回调函数
    说明如何实现托管代码中的回调函数参见
    使用非托管 DLL 函数
    说明如何使用平台调用来调用非托管的 DLL 函数用平台调用封送数据
    说明如何构造基于 .NET 的声明来用于平台调用发送有关此主题的views
    © 2001-2002 Microsoft Corporation。保留所有权利。
    本文标题 :如何在C#中调用外部的dll
    本文地址 :CodeGo.net/1106210/
    1. 使用JSON序列化的JavaScriptSerializer或反序列化过程中如何捕捉错误
    2. 求C# 上传下载的控件的信息,告诉我相关软件名字也行
    3. 火鸟嵌入式和的EntityFramework代码首先:什么是正确的方式来设置连接字符串和providers呢?
    4. 有没有C#的加密代码,要加密数据到数据库里的,如base64Decode?
    5. 如何判断是否回发是由一个用户控件
    6. 关于中文编码问题
    7. MVVM我应该使用INotifyPropertyChanged的,如果对象属性永远不会改变?
    8. 教 一个存储过程的调用问题(有 output 参数)
    9. 凡使用条款导航属性的异常
    10. DataTable绑定到comboBox为什么不行,怎么才是正确的

     
    

    Copyright © 2017 CodeGo.net
    http://codego.net/xinwen/ 足球比分网 足球比分 医药招商网 邵阳县新闻