mfc插件调用exe并打包成cab文件使用_手把手教你玩eos:Visual Studio Code和EOSFactory的结合使用...

文章由EOS节点EOSWing(柚翼)首发于EOSWing.io博客,并向知币(ZHIBI.COM)授权刊载。内容将不定期更新,仅供学习交流之用。

be389bd5c1a2b4e3e8c78231ca522fa7.png

0.引言

0.1教程概况

手把手教你玩eos系列教程,从最基础开始,一步一步教你学会用eos。比如发代币,开发DAPP等等。

本文是第十八篇。本篇教程讲解如何将EOSFactory与Visual Studio Code结合使用,以简化使用EOS智能合约的过程。

0.2 学习内容

1.安装和配置Visual Studio Code

2.在VSCode中开发智能合约项目

3.在VSCode中优化工作

0.3 机器环境

●笔记本电脑

●操作系统:Windows 10

1.安装和配置Visual Studio Code

1.1 关于VSCode

在前面的教程里,我们大部分时间使用vi来编辑代码,但是对于大部分初学者来说,这是很不方便的。

在这里我们将配置vscode作为我们开发eos智能合约用IDE。

Visual Studio Code (简称 VSCode) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段、代码对比 Diff、GIT命令 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件运行流畅,功能强大。

1.2 在官网下载VSCode

进入官网:https://code.visualstudio.com/Download,选择Windows版本的安装包下载。

a8e9c406e137e04d58735f09e2d4b6aa.png

安装过程比较简单,不再赘述。

1.3 安装C/C++ 插件

EOS是用c++开发的,所以打开vscode之后先安装c++插件

017d2e23b10d694146424647385c061a.png

点击右侧最下方图标,在出现的插件列表里,选择C/C++ 插件。点击Install安装。

我这里已经安装好插件了,所以是一个设置图标。

1.4 配置命令行调用

首先打开设置面板。File -> Preferences -> Settings

df55f651101ff1a530587ad9183fef72.png

然后,在Features -> terminal -> integrated>shell:windows 选项中配置参数为:

C:Windowssysnativebash.exe

df43a400df49fafdd331777854ecc133.png

关闭设置面板。选择View -> Terminal ,在下方打开命令行面板。

239b7a58037da5463ddc1c949fee78e3.png

2 在VSCode中开发智能合约项目

2.1 创建一个新的智能合约项目

在bash终端中,进入eosfactory文件夹,创建一个新的智能合约。

cd /mnt/f/EOS/eosfactory

python3 utils/create_project.py foo_bar_vsc 01_hello_world --vsc

2891626c0208c0c49f0255123de6aefb.png

第一个参数(foo_bar_vsc)是您的合同的名称。它可以是您想要的任何名称,前提是它没有空格。允许使用字母,数字,下划线_,点.和破折号-。

第二个参数(01_hello_world)表示将从中创建新合同的模板。截至目前已经有三个模板可供选择(即01_hello_world,02_eosio_token和03_tic_tac_toe)。此参数是可选的,默认值为01_hello_world。

第三个参数(–vsc)是将项目在VSCode中打开。会启动一个新的VSCode界面,并切换到项目文件夹。

140e0c42a07a3a9ce036c8ca0e687335.png

2.2 项目结构

点开查看下完整的项目结构。

b057fed1d353135f270a2677575efc9a.png

在foo_bar_vsc项目文件夹里,智能合约源代码,构建输出文件和单元测试分布在不同文件夹里。

●.vscode目录。 包含IntelliSense定义,任务定义等。

●build目录。 编译后生成文件。

●resources目录。 资源文件,比如Ricardian等合同文件。

●src目录。 源文件,cpp和hpp。

●tests目录。 测试文件。

●CMakeLists.txt CMake定义文件。

我们打开主要的源文件foo_bar_vsc.cpp查看下:

c6264dbfdc3914523d58985037e4ea34.png

vscode中,编辑代码很智能也很方便。

2.3 构建智能合约

我们使用cmake和make来构建智能合约。

首先选择View -> Integrated Terminal,在下方打开命令行。

先cmake构建一下:

cd bulid

cmake ..

f4a7ee087f509fbe646f28842c373bd0.png

等待完成后,再make编译。

make

3fa34ee279ad8bf4e88c708efe20c83a.png

这样,我们就在build文件夹里编译好了foo_bar_src.abi和foo_bar_src.wasm两个文件。

2.4 单元测试

编译好文件后,我们开始单元测试。

输入命令行。

ctest

11c247aaf01d637f7e439460fc09cca3.png

如果要使单元测试更详细,请加上-V参数: ctest -V

注意: 您可能已经注意到,有两种类型的单元测试:标准测试(命名为unittest1,unittest2等)和ad-hoc测试(命名为test1,test2等)。

这种二元性的原因在于:我们发现使用标准单元测试来证明事情按预期工作是有用的,并且通过临时测试来调查错误并且通常监视智能合约的内部工作。

EOSFactory支持两者,因此您可以选择任何适合您需求的产品。

当然,我们也可以直接用Python调用测试文件进行测试。

cd ..

python3 tests/test1.py

python3 tests/unittest1.py

f5acc173dc39a40b0e1c2d00a3d883bf.png

3 在VSCode中优化工作

在菜单栏选择 Terminal > Run Task。

8b0e647a4cd70ca36d029df8c7a3b681.png

稍等片刻,你会看到下拉菜单有五个选项提示:

20e2d16fb0bb7054ae024a8ca83425df.png

分别是:

●Build 完整构建合约,在build文件夹生成ABI和WAST文件。

●Compile 快速完成合约编译,注意,不会构建合约(既不生成ABI也不生成WAST)。如果编译中代码有错,会列出了代码错误。

●EOSIO API 打开EOSIO文档。

●Test 执行test1.py脚本。

●Unittest 执行unittest1.py脚本。

我们先将build文件夹下面的所有文件删除,然后挨个测试下这些命令。

在这里有一个小的环境设置问题。

要将.vscode中的tasks.json中的bash.exe都替换为C:Windowssysnativebash.exe

共有5处,都要修改。

3cc77fd71f6bce589f4d2ca3b3ca2e33.png

3.1 编译

Terminal > Run Task > Compile

d0c28bb7e961bfceca6d8c6afc4e8c2b.png

代码编译通过,没有报错。

将print 修改为 myprint

再次运行编译,会发现报错。

925c65ee32de2cb7a0fdd1f2219e2bdc.png

再修改会print

3.2 构建

将整个build文件夹删除,我们再看看构建的效果。

Terminal > Run Task > Build

c5181b8761d8c3c3860766bea55e9f1c.png

我们看到,自动新建了build文件夹,并生成了abi和wasm文件。

3.3 测试

Terminal > Run Task > Test

ac4382cbae4a96c1a15473638a5cf2b0.png

3.4 单元测试

Terminal > Run Task > Unittest

af53a31311d972a5b2fd998de4d6d97f.png

3.5 绑定快捷键

我们还可以将这些task绑定成快捷键,来进一步优化工作。

File -> Preferences -> Keyboard Shortcuts

选择编辑 keybindings.json 文件

67b665c971197b05677c0e9de17d0244.png

输入类似如下配置文件:

{

"key": "ctrl+shift+c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值