zoukankan      html  css  js  c++  java
  • 我用C#调用C编译的dll中有这样一个函数,函数大概的功能就是把数据保存到buf缓冲区中:

    我用C#调用C编译的dll中有这样一个函数,函数大概的功能就是把数据保存到buf缓冲区中:

    C/C++ code
     
    ?
    1
    int retrieve(int scanno,void* buf);


    在C中是通过先定义一个结构体再调用这个函数的:

    C/C++ code
     
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #define    COUNT_DIMENSION_MAX 256   
    typedef struct tagVECTOR_st    {               
        int    dimension;                       
        double    vector[COUNT_DIMENSION_MAX];   
    } VECTOR_st;
    struct tagSample_st {
        int        ID;
        VECTOR_st    Vec;    //
    } rec;
    retrieveall(scanno,&rec);


    请问各位大牛,这个retrieve函数的参数void* buf在C#中应该转换成什么?C#中并不能定义void*,我查找过一些资料,貌似说是转换成IntPtr,

    C# code
     
    ?
    1
    public static extern int retrieveall(int scanno, IntPtr buf);


    但是在C#中调用的时候应该传递什么样的参数给buf呢?C#中又不能写成&rec这种形式。希望大家帮忙解答!谢谢各位!

  • 相关阅读:
    mysql基础知识
    django知识
    gitlab的CICD搭建记录
    nginx的基础知识
    JAVA基础知识总结——part1
    【Python】python基础练习题_1
    【Docker】——Linux下搭建docker环境
    day3
    python_day2
    python_day1
  • 原文地址:https://www.cnblogs.com/flish/p/5254384.html
Copyright © 2011-2022 走看看