前情提要: 如何用C#调用RUST的DLL C#从C/RUST DLL接口获取数组/字符串数据 前面研究过了基础的rust提供dll给C#使用的一些操作,这篇文章就是介绍如何在C#中声明回调函数,提供给rust端来进行调用 基本概念如下: 回调函数(C#端编写) DLL(Rust编写) C#代码调用DLL中的函数,将回调函数作为参数传入,配置回调函…
上一篇文章《如何用C#调用RUST的DLL》介绍了如何在c#中调用rust的dll,但是那篇文章只演示了传递基本类型,和使用c#传入数组到dll接口。如果我们需要从dll中读取数组或字符串数据,应该如何操作呢?本篇文章就将描述具体的实现方法 dll端的接口 这里我们用c来当作类比,另外,这里的代码将忽略引用的包(include与use) //返回t…
最近(半年前)有项目需要使用c#调用rust的dll,所以研究了一下如何调用(其实就是C#效率太低了,为了提高效率才用的这个办法) 需要实现的操作: c#调用RUST接口,传入int,不返回值 c#调用RUST接口,获取i32 C#传入byte数组 先新建一个rust项目: cargo new csharpdll --lib 然后这里要注意,如果你…
例子 直接用一个具体例子来示范吧,比如我的xaml代码如下: <ItemsControl Name="toSendList"> <ItemsControl.ItemTemplate> <DataTemplate> <Grid Margin="0,3,0,0"> <Grid.ColumnDefin…
关于closing事件的解释文章:自定义wpf关闭按钮触发的动作 基本的处理 如果你的窗口打开代码是这样的: Window settingPage = new SettingWindow(); private void MoreSettingButton_Click(object sender, RoutedEventArgs e) { setti…
上篇文章讲的是使用C#默认的设置功能,软件再打开后会自动新建一个user.config文件来存储数据。 但是会有很大概率遇到一个问题:当你更改了软件版本之后,再次打开软件,设置就变成默认的了,这是为何呢? 因为新版本和旧版本软件的配置文件并不在同一个目录下 解决这个问题很简单,利用C#自带的导入旧版本配置接口就可以了,我这里直接参考了stackov…
最近几天又要填坑啦,LLCOM写得差不多了,很多东西需要记一下,以免忘掉 C#工程自带了一共设置的功能,在我的wpf项目里面,简单地用了一下这个功能 开始使用 我们可以点开解决方案资源管理器中的Properties: 在左边,找到设置,所有的设置项都可以在这里新建,并且设置默认值,如下面所示: 我们拿第一个dataToSend设置项举例吧,如果你想…
接待喵lua插件项目地址:https://github.com/chenxuuu/receiver-meow 交流群:931546484 为什么要用lua写qq机器人插件? 通常写插件流程:改代码--编译--重启机器人--测试功能 如果你用了lua:保存代码--立刻可以测试功能 这款插件就是为了这种便捷的编程体验而诞生的,不用编译器,一个编辑器即可…
缘起 说起这个qq机器人插件,其实这已经算是第二次重新编写这个项目了。 第一次写插件使用的是Flexlive SDK这个框架,主要是因为只会C# 后来这个插件框架的作者去搞了个新框架叫麻花,也就是Newbe.Mahua,不过这个框架说实话,用起来确实有点。。。。。看看下面酷q所有文件的图片就懂了: 各种dll全部需要扔到根目录,然后还附属了一堆其他…
一直以来都有个想法,就是在C#中实现lua脚本的环境,然后给我的qq机器人加上直接运行自定义lua脚本发功能。这样机器人功能就能大大拓展了,并且也不用经常编译/重启机器人来测试各种新增功能了,只需要扔脚本进去跑就好了 经过一番查找,我发现了Nlua这个好东西 安装Nlua 我比较懒,直接进nuget商店去安装的: 跑起来~ 跑起来lua只需要简单的…
Circle c; c = new Circle(42); Circle refc; refc = c; //c与refc指向同一地址正确的复制类的方法(包括复制私有数据):class Circle { &nbs…
创建构造器的一个例子:class Circle { private int radius; public Circle() //默认构造器 &…
基本语法:try { ... } catch(Exception ex) when (ex.GetTypr() != typeof(System.OutOfMenoryException)) { ....…