• 还是c#引用c++,关于传递结构的,实在是太纠结

  • 本文关于 c#
  • CodeGo.net > 还是c#引用c++,关于传递结构的,实在是太纠结
  •  

    还是c#引用c++,关于传递结构的,实在是太纠结



    c#
    c++ GLOBAL
    #ifndef _GLOBAL_H_
    #define _GLOBAL_H_
    #ifndef int8_t
    #define int8_t char
    #endif
    #ifndef uint8_t
    #define uint8_t unsigned char
    #endif
    #ifndef int16_t
    #define int16_t short
    #endif
    #ifndef uint16_t
    #define uint16_t unsigned short
    #endif
    #ifndef int32_t
    #define int32_t int
    #endif
    #ifndef uint32_t
    #define uint32_t unsigned int
    #endif
    #ifndef float32_t
    #define float32_t float
    #endif
    #ifndef float64_t
    #define float64_t double
    #endif
    #endif
    ==
    #ifndef _MQTTC_H_
    #define _MQTTC_H_
    #include "global.h"
    #ifdef WIN32
    #ifdef _USRDLL
    #define APP_API __declspec(dllexport)
    #else
    #define APP_API
    #endif
    #else
    #define APP_API
    #endif
    typedef struct
    {
    uint16_t mid;
    int8_t *topic;
    uint8_t *payload;
    uint32_t payloadlen;
    int32_t qos;
    int8_t retain;
    }MQTTC_Message;
    typedef void (*callbackSubscribe)(void *data, uint16_t id, int32_t qosCnt, const uint8_t *qosPtr);
    typedef void (*callbackMessage)(void *data, const MQTTC_Message *msg);
    #ifdef __cplusplus
    extern "C"
    {
    #endif
    APP_API void MQTTC_SetCallbackSubscribe(void *handle, callbackSubscribe cbFunc);
    APP_API void MQTTC_SetCallbackMessage(void *handle, callbackMessage cbFunc);
    APP_API int32_t MQTTC_Subscribe(void *handle, uint16_t *cbID, const int8_t *subPattern, int32_t qos);
    #ifdef __cplusplus
    }
    #endif
    #endif
    ==
    3
    1:MQTTC_SetCallbackSubscribe 和 MQTTC_SetCallbackMessage 如何在c#内写
    2:MQTTC_Subscribe如何写
    3:结构体难道这么纠结
    本文地址 :CodeGo.net/1482698/
    -------------------------------------------------------------------------------------------------------------------------
    1.去掉, Pack = 1就可以,
    char* 对应C#就是string,当然任何类型的指针都可以用Intptr ,尤其是void* 但是这里仅仅是char*,就没必要那么复杂。
    2. 用VC新建一个ALT程序,在.idl里定义结构体生成DLL后,
    再把你的动态库引用到C#里,
    在库里找到你要的结构体!!
    把它栲出来,删掉对动态库的引用,
    重新定义就可以!!
    这招最管用!!
    本文标题 :还是c#引用c++,关于传递结构的,实在是太纠结
    本文地址 :CodeGo.net/1482698/
    1. C ++中返回的Web服务价值
    2. c#中的new也是申堆内存吗?
    3. 命名用户控件。conventions?
    4. TCP/IP socket 问题
    5. 我怎么能值设置为rhino的对象?
    6. SQL语句把一列转化为行后 无法读取具体的值 为什么
    7. 从XSL生成HTML:FO使用C#
    8. Winfrom 自定义控件的双击事件及控件便利
    9. 有一种简单的方法来创建一个C#。与编码对话框NET的文件对话框?
    10. C# winform 能不能写个方法动态创建控件 然后调用这个方法

     
    

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