【飞秋】OR层代码组织介绍

[Java]关于飞秋内网攻击二三事 前言: 阅读详情

OR层代码组织和映射介绍

即时通讯软件

 

 

    OR层也是老生常谈了,有的朋友说我是重复造车轮,只是OR这部分写的太早了,更主要是的与BLL层代码的集成,非常方便,所以呢,虽然后来NH和IB出来了我没有换,MS的Linq出来了,我依然没有换,经过这几年的应用,更坚定了自己的想法。

    与原来框架的主要差异是把数据映射由编码文件改为配置文件,当初考虑是方便写代码,用了之后才发觉这样太不灵活了,一直托到现在才改

    从结构上来说,与原来的框架没有太多的差异,主要是把配置由自定义属性改到了配置文件。另外加入了可配置的数据校验,在Column属性中加入了一个ReadOnly的属性,对于关联关系和关联表的处理会更方便。

<Property PropertyName="Name" FieldName="name" Description="姓名">
  <Column TableName="User" ColumnName="Name" DbType="AnsiString" Length="50" ReadOnly=”true” />
</Property>

     其中,ReadOnly默认值为false,当改为true时,如果更新数据库,此列则会跳过。加载的时候,可以根据实际需要配置成同步加载或是延迟加载。

     另外在Property属性内加入校验功能,支持大小/正则表达式/范围/时间等验证

     对于配置文件,默认放在Config/Map/目录下,规则为类的全名+.Config的文件:EES.H.Data.User.Config

     数据库的定义连接字符串,通过SourceKey进行设置。  <SourceKey>House</SourceKey>

     数据库的连接字符串配置在Config/DataSourceConfig.Config 的文件中:

<DataSourceConfig DataSourceType="MSSqlServer" DataSourceKey="House">
  <ConnectionString>server=(local);database=House;Trusted_Connection=true;</ConnectionString>
</DataSourceConfig>     

     在加载的时候,配置文件会自动被加载,系统不需要显式处理,这点与常见的NH和IB映射应该有一定的不同,并且系统会自动处理Session的打开和关闭,以及处理多数据源等,这些会以业务层代码里面再作介绍

 

    实体类如下:

    [EESData()]
    [Contract()]
    public class User : EESObject
    {

         protected String name;

/// <summary>
/// 姓名
/// </summary>
[Member(3)]
public virtual String Name
{
    get
    {
        return name;
    }
    set
    {
        if ((name != value))
        {
            this.OnPropertyChanging("Name");
            name = value;
            this.OnPropertyChanged("Name");
        }
    }
}

   }

   对于实体类,大同小异,都是从EESObject继承而来

   EESData标注此类为数据类,另外也是为了通过工具生成界面层的视图。

   Contract标注此类可远程序列化,Member为属性的可序列化,如果没有此自定义属性,则此属性不会进行远程传输序列化。

   OnPropertyChanging和OnPropertyChanged在服务器端的作用不大,主要是对于客户端的双向绑定。

   从这几个属性,可以看的出来,数据映射类为标准的一般类,由于中间用到了AOP,所以如果要用到校验功能,则需要在属性前加 virtual 。

 

   对于级联的处理处理方式,采用一级对一级负责的处理方式,就如在部队里的处理一样。

   对于一对多和一对一的处理采用 关系配置处理。

   对于主从关系的处理,还需要手工添加Slave的自定义属性,在界面生成的时候,工具会自动生成主从关系的界面。还要在属性前增加 virtaul的属性,则系统会自动处理其层次关系,如果在客户端则会自动实现级联触发。

 

    映射层的介绍结束了,写的不到不明白的地方,请大家批评指正

 

 

 

关注技术文章飞秋:http://www.freeeim.com/,24小时专业转载。

Java监听和发送飞秋群消息 背景    应用背景。公司内网使用飞秋通讯,平台的一些消息推送到飞秋群里,更加直观,方便处理 技术分析        飞秋本身并不开源,但兼容飞鸽,so它采用一样的加密算法:blowfish,而加密key,就是发送方的mac地址        飞秋的群消息,采用组播传输,组播地址226.81.9.8 端口号2425        写个简单的程序,监听2425端口,拦截一条群消息,结果如下 阅读详情

相关推荐

IPMSG(飞秋)源代码调试笔记

1、怎么发送普通消息? 进行socket异步select选择,每个消息都是一个Msg包,并且分配一个senddlg为其发送消息。消息协议可以参考其他文档,消息统一封装成文本的方式发送,封装方式为[属性1:属性2:...:消息扩展消息],属性和属性之间和消息之间用冒号隔开,消息和扩展消息用消息结构体的exOffset标记隔开,发送的内容可以协定解密方式。 2、使用udp协议发送,如何确定消息是否...

fripy的专栏 3948

OR指令介绍

指令在二进制运算中用于检查两个操作数的对应位是否至少有一个为1,而在编程中则常用于判断多个条件中是否至少有一个满足。是另一个重要的逻辑指令,在编程、逻辑电路设计和计算机体系结构中应用广泛。)常用于条件判断,表示多个条件中只要有一个满足即执行相应的操作。可以看到,只要操作数A或操作数B的对应位中有一个是1,结果的对应位就是1。操作在逻辑上是相似的,只不过操作的对象是布尔表达式而不是二进制位。中有一个条件满足,代码块就会被执行。指令的详细解释及示例。

MHD0815的博客 4173

NODEJS和飞秋通讯,RSA、blowfish消息加密解密

Wireshark抓包后发现飞秋的消息都加密了。 看抓到的包,怀疑是RSA公钥(e,n) 下载安装nodejs,然后用 npm安装nodejs的模块node-rsa 和iconv-lite 修改node-rsa,修改NodeRSA.js 修改: var DEFAULT_ENCRYPTION_SCHEME = 'pkcs1'; var DEFAULT_SIGNING_SCHEME = 'p

lady911的专栏 3372

c语言连接mysql_mysql数据库字符编码总结--数据传输编码

概述前面分享了mysql数据库字符编码中的数据存储编码,今天主要介绍下数据传输编码方面的内容,看完后大家应该对mysql数据库字符编码的策略很清楚了。01名词解释1、character_set_client:客户端数据解析、编码的字符集。2、character_set_connection:连接层字符集。3、character_set_server:服务器内部操作字符集。4、character_s...

weixin_39988677的博客 288

飞秋 2012 测试版

飞秋2012测试版 即V2.6 测试版

告别复杂配置!5分钟在Vue/React项目中集成讯飞语音听写WebSocket API

本文详细介绍了如何在Vue/React项目中快速集成讯飞语音听写WebSocket API,实现高效语音识别功能。通过对比不同通信方案,突出WebSocket在实时语音交互中的优势,并提供框架适配、音频处理及性能优化等关键技术点,帮助开发者5分钟内完成专业级语音听写功能集成。

weixin_28730353的博客 274

飞秋登录后好友面板出现乱码情况

如果飞秋版本出现乱码有可能是电脑不是GBK格式,有可能是UTF-8

weixin_72749561的博客 4401

视觉开发板—K210自学笔记(三)--点亮LED

K210点亮LED灯

adamsecond 3412

别再乱拖控件了!用Tkinter的Grid布局5分钟搞定一个整齐的Python桌面应用界面

本文详细介绍了如何使用Tkinter的Grid布局快速创建整齐的Python桌面应用界面。通过对比传统拖拽控件的低效方式,展示了Grid布局在精准定位、自适应伸缩和跨平台一致性方面的优势,并提供了5分钟速成指南和实战案例,帮助开发者轻松掌握这一高效布局方法。

weixin_30527323的博客 326

SAP特殊采购类80实战:跨工厂生产配置避坑指南(附完整测试流程)

本文深入解析SAP特殊采购类80在跨工厂生产场景下的实战应用与配置要点。文章从核心业务逻辑出发,详细拆解了后台配置、主数据与BOM的“双工厂”思维模式,并提供了从创建需求到成品收货的完整测试流程。重点揭示了多层BOM下的需求传递陷阱及常见报错解决方案,旨在帮助SAP顾问及用户规避实施风险,实现资源的灵活调度与流程自动化。

wind6的博客 1139

STC15W204S最小系统开发指南:从串口通讯到自动热加载全流程

本文详细介绍了STC15W204S最小系统的完整开发流程。从芯片资源解析、最小系统搭建、串口通讯驱动编写(使用Timer2生成波特率),到实现基于魔术值触发的自动热加载功能,并最终集成Keil与STC-ISP软件,构建高效的自动化开发工作流,显著提升嵌入式调试效率。

a1b2c的博客 395

飞秋0day漏洞复现,详细代码及过程

windows xp 安装ollydbg用以调试使用 飞秋2.5:目标软件kali 安装Python3。

m0_69538381的博客 2347

Basilisk库教程

要在仿真中执行模块,其调度由Basilisk的[Process]和[Task]容器控制。BSK[Task]包含一系列模块,这些模块都以相同的更新频率执行。一个[Process]本质上是一个任务组,可以包含多个相关的任务。例如,在多星仿真中,你可以为每颗卫星创建一个[Process],以便将相关任务和嵌入式模块有序地组织起来。下图展示了一个示例布局,其中bskSat卫星的动力学被添加到与飞行软件(FSW)算法分开的进程中,这些算法在该卫星上执行。在每个进程中,设置了若干任务,这些任务以指定的频率进行评估。

weixin_57997461的博客 1138

飞秋下载2010正式版_飞秋下载

飞秋最新版下载,飞秋最新版,飞秋下载,飞秋下载2010正式版-u85l_FreeEIM_FreeEIM_FreeEIM

小发猫 7193

在微信小程序中如何引入iconfont

略

sayyy的专栏 4326

将指定文件夹下每张用LabelImg标注的图片中标注部分抠出来保存到指定文件夹下。

将指定文件夹下每张用LabelImg标注的图片中标注部分抠出来保存到指定文件夹下。

weixin_44119674的博客 440

飞秋文件传输模拟实现代码

<br />最近一直在研究基于WINSOCK的文件传输,文件传输时会出现各种各样的情况处理起来其实也挺麻烦的这里不一一说明,大家看代码吧,这是最新版 飞秋 http://www.freeeim.com/ 的代码,这个是飞秋文件传输模拟实现代码,完整代码可以网上搜索获取。<br />#ifndef _XEIM_SEND_FILE_LOGIC<br />#define _XEIM_SEND_FILE_LOGIC<br />#if _MSC_VER > 1000<br />#pragma once<br />#e

小发猫 4046

SAP Fiori Launchpad 上看不到任何 tile 应该怎么办?

中心UI组件是一个框架,为所有SAPFiori应用程序提供公共基础设施SAPFiorilaunchpad是所有SAPFioriUI的基础,并为SAPFiori应用程序提供基本功能,如登录,界面大小,应用程序之间的导航,和基于角色的应用程序目录。ABAP前端服务器包含所有基础设施组件,用于为客户端生成SAPFiori应用程序特定的UI,并与SAPBusinessSuite后端系统通信。SAPFiori应用程序的处理过程如下首先,客户端加载SAPFiori应用程序的界面。...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 946

最新版飞秋下载

最新版飞秋下载

qq_43680030的博客 4368

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

linux版飞秋安装

在现代办公和教育环境中,高效的内部沟通工具对于提升团队协作效率至关重要。虽然市场上有许多知名的即时通讯软件,但在某些特定场景下,特别是在局域网内,一款简单、高效且无需依赖互联网连接的通讯工具显得尤为必要。飞秋(FeiQ)就是这样一款专为局域网设计的即时通讯软件,它在 Windows 平台上广受欢迎。幸运的是,通过 Wine 或其他兼容层,Linux 用户也可以享受到飞秋带来的便利。。

梵心白莲的博客 5782

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

飞秋是什么?

最近观察了一下飞秋版块,发现很多人还不明白什么是飞秋这里,我用通俗易懂的话跟大家解释一下什么是飞秋.飞秋是一款集文字聊天,发送文件,飞秋更新远程协助功能于一身的工具/软件.有同学会问,QQ不是也有这样的功能吗?(言外之意,还要飞秋干吗?)问得很好,姑且我们把飞秋理解成QQ吧(当它是山寨版的QQ)总所周知,众多高校里上网是按流量计费的,(例如我们岭南校园网,蝴蝶)这正是飞秋的优势所在,这就是我们为什

小发猫 8676

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【飞秋怎么用】企业应用

企业应用 一、企业通讯录功能 1、设置个人办公电话、电子邮件、联系方式等信息     打开设置中的“个人资料设置” 如果设置了个人信息共享的话,好友会获取到你设置办公电话、邮箱等个人信息 2、以列表方式查看所有用户通讯信息 (1)在上面的对话框中点击”查看所有用户信息资料” (2)主面板好友列表菜单 3、在好友列表框中查看好友的联系方式 假

小发猫 5117

飞秋_飞秋2010_飞秋2010下载_飞秋下载2010正式版

以后记录飞秋读书笔记,不用传统的一条条的记录方法,正巧看了《飞秋2010思维导图》,就用图表的形式记录吧。说实话,原来条条框框的记录的笔记,有多少人是记完了就再也不曾翻开了,更不要说电子版的。与其这样,还不如用画图的方式,标示重点关键词,一张就能设定,没事的时候翻出来看看也比看着满篇密密麻麻的文字舒服的多,思维也不会局限于固定的地方,可以根据关键字向外无限扩散。总之,换个方式试试,也许会有意想不到的收获!!

小发猫 1万+

《基于Python的UDP协议:解锁飞秋通讯新方式》

(1)最关键的是局域网用户列表的建立;飞秋启动时使用UDP协议向255.255.255.255这个广播地址发送广播包,默认端口是2425。广播包内容包含用户名、工作组、主机名、IP等信息;已启动飞秋的用户通过2425端口收到此广播包后,就会在自己的用户列表中添加这个用户的用户名、工作组等信息,同时向对方IP发送本机用户的个人信息;从而双方都能建立起用户列表;(2)刷新用户列表时发送的广播包和启动时差不多,只不过返回的标识信息略有不同;可以做一个小工具,监控2425端口内存流,就能截获刷新和聊天时的消息。

乐茵安全 1779

【亲测免费】 飞秋Mac版技术文档

本文档旨在详细指导您如何安装、使用以及理解基于Qt开发的Mac版飞秋软件。本项目作为一个轻量级的局域网通讯工具,允许用户在Mac操作系统下享受类似传统飞秋的便捷体验,支持文本、文件的收发,与原飞秋表情兼容等核心功能。 ## 安装指南 ### 获取源码 首先,您需要从GitHub克隆项目源码到本地。打开终端,执行以下命令: ```bash git clone https://github.c...

gitblog_01201的博客 1652

飞秋源码 java_飞秋源码下载 java

【实例简介】飞秋源码下载 java【实例截图】【核心代码】2a199ec7-0723-4b13-9201-e361955484df└── javaFeiQ-all├── feiq.jar├── javaFeiQ.exe├── launch.jar├── launch.properties├── lib│ ├── commons-io-1.3.1.jar│ ├── commons-lang-...

weixin_30647489的博客 1518
上一篇: 飞鸽传书2010与AM V6.0 功能比较
下一篇: 【飞秋】C# 调用
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值