[DllImport(@"XXX.dll", CallingConvention = CallingConvention.StdCall)]
public static extern int XXX(string strin,StringBuilder strout);
static void Main()
{
FleckLog.Level = LogLevel.Debug;
var allSockets = new List<IWebSocketConnection>();
var server = new WebSocketServer("ws://0.0.0.0:8181");
server.Start(socket =>
{
socket.OnOpen = () =>
{
Console.WriteLine("Open!");
allSockets.Add(socket);
};
socket.OnClose = () =>
{
Console.WriteLine("Close!");
allSockets.Remove(socket);
};
socket.OnMessage = message =>
{
Console.WriteLine(message);
message = getDate(message);
socket.Send(message);
};
}); var input = Console.ReadLine();
while (input != "exit")
{
input = Console.ReadLine();
}
}
private static string getData(string message)
{
StringBuilder response = new StringBuilder();
response.Capacity = 100;//设置字符串最大长度 var aa = XXX(message, response);
var result = response.ToString(); if (result.Substring(0, 2) != "00")
{
result = "获取失败";
}
return result;
}

注意:1、DLL传出字符串,C#中使用StringBuilder对象创建变长数组,并设置StringBuilder的Capacity为数组最大长度。将此对象名传递给DLL,使用char*接收

2、Fleck 地址:https://github.com/statianzo/Fleck/

C# WebSocket Fleck 调用非托管C++ DLL 实现通信(使用stringbuilder接收)的更多相关文章

  1. C# WebSocket Fleck 调用非托管C++ DLL 实现通信(使用char*接收)

    [DllImport(@"C:XXX.dll", CallingConvention = CallingConvention.StdCall)] unsafe public sta ...

  2. c# 调用非托管c++dll 参数问题(转)

    在C#中调用C(C++)类的DLL的时候,有时候C的接口函数包含很多参数,而且有的时候这些参数有可能是个结构体,而且有可能是结构体指针,那么在C#到底该如何安全的调用这样的DLL接口函数呢?本文将详细 ...

  3. (转)C#调用非托管Win 32 DLL

    转载学习收藏,原文地址http://www.cnblogs.com/mywebname/articles/2291876.html 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使 ...

  4. 在VS2010上使用C#调用非托管C++生成的DLL文件

    背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用.本篇文章将引导你快速理解这个调用 ...

  5. .net4.0调用非托管DLL的异常捕获

    转发: 由于有些非托管的DLL内部异常未有效处理,当托管程序调用到这样的DLL时,就引起托管程序意外退出. 托管程序使用通常的捕获try……catch块不起作用.原因是.NET 4.0里新的异常处理机 ...

  6. 在VS2017上使用C#调用非托管C++生成的DLL文件(图文讲解)

    原文:在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解) 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就 ...

  7. C#调用非托管dll

    以C#开发周立功CAN举例,在官网下载了周立功的demo 一.C++头文件样子 //接口卡类型定义#define VCI_PCI5121 1 //一些结构体定义 typedef struct tagR ...

  8. 【转】在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)

    原文:http://www.cyqdata.com/cnblogs/article-detail-35876# 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件 ...

  9. 关于C#调用非托管DLL,报“内存已损坏的”坑,坑,坑

    因客户需求,与第三方对接,调用非托管DLL,之前正常对接的程序,却总是报“内存已损坏的异常”,程序进程直接死掉,折腾到这个点(2018-05-11 00:26),终于尘埃落定,直接上程序. 之前的程序 ...

随机推荐

  1. 贪吃蛇(简易版)Leslie5205912著

    # include <stdio.h># include <string.h># include <windows.h># include <stdlib.h ...

  2. java 基础 ----- Arrays 工具类

    -----  Arrays  工具类是一个比较方便的类 常用的方法 也可以通过jdk文档进行查看    右侧有偶 对一些比较常用的方法进行演示   直接放在main方法中进行测试 ----   equ ...

  3. java基础 ---- 一维数组

    为什么要使用数组: 因为不使用数组计算多个变量的时候太繁琐,不利于数据的处理. --------   数组也是一个变量,是存储一组相同类型的变量 声明一个变量就是在内存中划出一块合适的空间 声明一个数 ...

  4. project4 安卓

    [MongoDB的密码] 用户名dbUser 密码dbUserPassword00 dbUser:dbUserPassword00 [概念] POM的配置要严格按照网页指示给出的标签顺序来. 安卓AP ...

  5. spring-boot自定义favicon.ico文件

    一.将ico文件存放到resources目录的static中的favicon下. 二.在application.properties文件中增加配置 spring.mvc.favicon.enabled ...

  6. window下maven的环境搭建

    一.下载 官网下载地址 二.maven的安装配置 1.环境变量的配置 1)新建环境变量MAVEN_HOME,值如下: D:\install\develop\apache-maven- 2)修改环境变量 ...

  7. Charles抓https请求详细步骤

    1.电脑上安装好Charles 2.电脑上安装证书 (1)点击Help - SSL Proxying - Install Charlse Root Certificate (2)在电脑上找到证书.此时 ...

  8. python 机器学习

    十分钟搞定pandas http://www.cnblogs.com/chaosimple/p/4153083.html dummies 哑变量,将变量重新编码,便于二分类,例如男.女,变为0,1等 ...

  9. android 开发案列汇总

    Android 开发案列汇总 1.一款轻量级的便签软件,界面简单干净,绿色无广告.支持部分Markdown语法,可以方便地输入和预览Markdown文本,并且生成长微博图片保存到本地. 文章来源:ht ...

  10. spring boot 注解

    一级注解:(写在类名前面的)@RestController: 等价于在函数前面写@ResponseBody ,会直接返回要显示的内容 @ControllerString返回的是模板文件的名称. 二级注 ...