FlightGear2016.4.1+VS2015编译指南
EPSON RC+ 7.0 选件 Force Guide 7.0 SPEL+ Language Re

EPSON RC+ 7.0选件Force Guide 7.0 SPEL+ Language Reference Rev.5EPSON RC+ 7.0选件Force Guide 7.0SPEL+ Language ReferenceRev.5Copyright © 2015-2018 SEIKO EPSON CORPORATION. All rights reserved.Force Guide 7.0 SPEL+ Language Reference Rev.5 i前言感谢您购买本公司的机器人系统。
本手册记载了正确使用Force Guide 7.0所需的事项。
使用该软件时请仔细阅读本手册与其他相关手册。
阅读之后请妥善保管,以便随时取阅。
保修本机器人及其选装部件是经过本公司严格的质量控制、测试和检查,并在确认性能满足本公司标准之后出厂交付的。
在交付产品的保修期内,本公司仅对正常使用时发生的故障进行免费修理。
(有关保修期事项,请咨询您的区域销售办事处。
)但在以下情况下,将对客户收取修理费用(即使在保修期内):1.因不同于手册内容的错误使用以及使用不当而导致的损坏或故障。
2.客户未经授权进行拆卸导致的故障。
3.因调整不当或未经授权进行修理而导致的损坏。
4.因地震、洪水等自然灾害导致的损坏。
警告、小心、使用:1.如果机器人或相关设备的使用超出本手册所述的使用条件及产品规格,将导致保修无效。
2.本公司对因未遵守本手册记载的“警告”与“注意”而导致的任何故障或事故,甚至是人身伤害或死亡,均不承担任何责任,敬请谅解。
3.本公司不可能预见所有可能的危险与后果。
因此,本手册不能警告用户所有可能的危险。
ii Force Guide 7.0 SPEL+ Language Reference Rev.5商标Microsoft、Windows、Windows标识、Visual Basic及Visual C++为美国MicrosoftCorporation在美国和/或其它国家的注册商标或商标。
F-16CM VIPER毒蛇 中文指南 15.1FLCS (飞行控制系统)

FLCS (飞行控制系统)与F/A-18和幻影2000C一样,F-16配备了电传飞行系统。
电传飞行(FBW)是一种用电子接口代替传统的飞机手动飞行控制的系统。
飞行控制装置的动作被转换成电线传输的电子信号(因此称为电传飞行术语),飞行控制计算机决定如何在每个控制面上移动执行器,以提供有序的响应。
电传操纵系统还允许飞机计算机发送的自动信号在无需飞行员输入的情况下执行功能,如自动帮助稳定飞机或防止飞机在性能范围外不安全运行的系统。
驾驶F-16和其他战斗机如F-15感觉不同。
操纵面由计算机控制:你只需告诉飞机你想让它做什么。
我强烈推荐这篇关于F-16电传系统的文章。
它很有启发性,也很有趣。
/AADR-FBW-CCV.html飞行计算机控制律将决定操纵面必须如何移动,以便再现操纵杆上飞行员输入所指示的运动操纵杆上的飞行员输入送至控制面执行器的电信号406FLCS(飞行控制系统,也被昵称为“Flickiss”)是一个数字四通道系统,液压定位控制面。
FLCS对俯仰、横滚和偏航控制输入具有一定程度的控制。
俯仰运动由水平尾翼的对称运动控制。
横摇运动由襟翼和水平尾翼的差异运动控制。
偏航运动由方向舵控制。
翻滚协调由ARI(副翼-方向舵互连)提供。
如果主起落架速度超过60节或攻角超过35度,ARI功能不可用。
方向舵前缘襟翼(LEF)水平尾翼稳定器(稳定器/升降舵)后缘襟翼(TEF)7(襟翼/副翼)FLCS操作模式(增益)飞行控制系统(FLCS)可以使用三种主要的操作模式,也称为“gains增益”。
这些增益将修改电传操纵系统如何移动控制面。
巡航增益(正常工作模式)飞机正常飞行时激活(起落架升起,无FLCS故障)起和降增益当起落架展开时,或当ALT FLAPS高度副翼开关设置为EXTEND伸出时,或当空中加油活门打开时,在400节以下激活备用增益飞行控制计算机检测到FLCS故障时激活***********************************************************************************GUN COMPENSATION机炮补偿FLCS通过移动方向舵和襟翼,自动补偿偏离中心的火炮发射和火炮发射过程中的气体排放。
【C#】VS2015开发环境的安装和配置(一)2016-08-03更新

【C#】VS2015开发环境的安装和配置(⼀)2016-08-03更新分类:C#、VS2015、WPF、 MVC、Android、iOS、Unity3D;更新⽇期:2016-08-03⼀、简介为了避免⽹上乱七⼋糟的过时介绍,避免误导初学者,这次把⾄2016年8⽉初C#开发环境各种版本的更新和安装过程重新整理⼀下。
⽬的是为了让对C#感兴趣的初学者知道到底哪些是过时的,哪些是最新的,哪些是别有⽤⼼的⼈故意给你挖的坑。
先说⼀下VS2015的官⽅⽹址(这是你了解VS2015以及它到底能做哪些事的第1步):https:///en-us/visual-studio-homepage-vs.aspx其中:VS2015 Enterprise(含Update3)是功能最全且性能⽆限制的商业版本。
VS2015 Community(含Update3)是全功能的免费版说明:微软搞的免费的VS2015 Community的作⽤和IBM搞的免费的Eclipse作⽤相同,都是为了吸引开发者的。
如果你能忍受性能的限制,如果你想玩没有⼈去承担责任的各种开源架构,如果你想将各种开源程序直接拿来糊弄⽼板,如果⽼板想⽤0%的投资赚取100%的利润(呵呵,……),那么,对于C#开发⼈员来说,VS2015 Community是⾸选;对于Java开发⼈员来说,Eclipse是⾸选。
为什么?原因很简单,微软和IBM肯定都不会去找你的⿇烦,只要你的⽤户能忍受你搞的⼤杂烩就⾏了。
但是,如果你想让开发的系统稳定可靠,⽽且没有性能限制,还是⽤收费的企业版吧(学习时可以⽤破解的)。
本博客介绍的就是这个版本(VS2015简体中⽂企业版)。
⼆、截⾄到2016年8⽉各种开发⼯具的最新版本1、VS2015:Update32、Android SDK:25.1.73、Xmarin for Visual Studio:4.1.2.184、HAXM:6.0.35、Unity:5.3.5f16、Visual Studio Tools for Unity:2.37、百度Android SDK:4.0.08、百度TTS:2.2.7本博客后⾯的安装和⽰例运⾏截图都是针对上⾯介绍的这些最新版本⽽⾔的。
微软模拟飞行地景制作BGL编译器使用手册

BGL目录概述 (4)编译器和文件格式 (4)向后兼容性 (4)GUID格式 (4)生成GUID的工具 (4)编译器的使用 (5)XML格式 (5)风景文件格式 (6)空间排序 (6)常见错误 (6)FSX.CFG文件中的入口 (7)[Scenery]部分 (7)[Graphics]部分 (7)风景对象(SCENERY OBJECTS) (7)S CENERY O BJECT (8)B IAS XYZ (10)E FFECT (10)G ENERIC B UILDING (11)R ECTANGULAR B UILDING (12)Rectangular Building: Flat Roof (12)texture ratio (13)Peaked Roof (13)Ridge Roof (14)Slant Roof (15)P YRAMIDAL B UILDING (16)M ULTI S IDED B UILDING (16)L IBRARY O BJECT (17)T RIGGER (18)F UEL (18)T RIGGER W EATHER D ATA (19)W INDSOCK (19)PoleColor (19)SockColor (20)B EACON (20)A TTACHED O BJECT (20)RandomAttach (22)M ODEL D ATA (22)时区(TIME ZONE) (24)高架桥(EXTRUSION BRIDGE) (26)AltitudeSampleLocationList (30)AltitudeSampleLocation (30)PolylineObjectPlacementList (30)PolylineObjectPlacement (31)PolylinePointList (31)PolylinePoint (31)BankShearList(保留为将来使用) (32)BankShearEntry(保留为将来使用) (32)设施数据(FACILITY DATA) (32)A IRPORT (32)J ETWAY (33)B LAST F ENCE,B OUNDARY F ENCE (34)D ELETE A IRPORT (35)D ELETE R UNWAY (36)D ELETE S TART (37)D ELETE F REQUENCY (38)T OWER (39)R UNWAY (39)M ARKINGS (42)L IGHTS (43)O FFSET T HRESHOLD (44)B LAST P AD (45)O VERRUN (46)A PPROACH L IGHTS (46)VASI (47)ILS (48)GlideSlope (49)V ISUAL M ODEL (50)R UNWAY S TART (50)R UNWAY A LIAS (51)S TART (52)H ELIPAD (53)C OM (54)A PPROACH (55)A PPROACH L EGS (56)M ISSED A PPROACH L EGS (57)T RANSITION (57)L EG (57)D ME A RC (61)T AXIWAY P OINT (62)T AXIWAY P ARKING (63)T AXIWAY P ATH (65)T AXI N AME (68)S ERVICES (68)T AXIWAY S IGN (68)A PRONS (69)Apron (70)V ERTEX (70)A PRON E DGE L IGHTS (71)EdgeLights (71)B OUNDARY (71)BoundaryStart (72)Origin (73)Arc (73)Line (74)Circle (74)V OR (75)Dme (76)N DB (76)M ARKER (77)W AYPOINT (78)R OUTE (78)Previous (79)Next (79)G EOPOL (80)使用BGLSCAN工具 (80)附录:全局库对象GUID (81)概述BGL编译器主要用来把风景和机场数据编译成FSX可以阅读的格式。
FlightGear编译指南

FlightGear2.8.0 + OSG3.0.1 VS2010编译指南Jinchengde(jinchengde@)首先需要下载CMake下载地址/cmake/resources/software.html下载Windows版本安装完成后待用,CMake设置编译器为VS10 Native即可在C盘创建FlightGear和OpenSceneGraph目录如果想跳过OSG的编译,可以直接从/osg/downloads/free-openscenegraph-binary-downloads 下载已经编译好的二进制代码,解压至C:\FlightGear\install\msvc100\OpenSceneGraph关于编译工具,如果只需要编译FG的话,那么VS2010学习版即可,但是编译OSG的时候需要用到MFC的头文件,所以需要VS2010专业版以上。
OSG3.0.1编译OSG3.0.1的源码可以从/projects/osgcn/wikicn/Downloads.php下载OSG编译需要的第三方库可以从.au/~bchrist/下载OSG的数据文件可以从/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenS ceneGraph-Data-3.0.0.zip下载将OSG的源码,OSG的第三方库和数据文件解压到C:\OpenSceneGraph,创建OpenSceneGraph-Build待用,如下:打开cmake-gui,设置如下:勾选Advanced后,Where is the source code设置为C:/OpenSceneGraph/OpenSceneGraph-3.0.1 Where to build the binaries设置为C:/OpenSceneGraph/OpenSceneGraph-Build ACTUAL_3RDPARTY_DIR 设置为C:/OpenSceneGraph/3rdParty/x86CMAKE_INSTALL_PREFIX设置为C:/FlightGear/install/msvc100/OpenSceneGraph 勾选BUILD_MFC_EXAMPLE,BUILD_OSG_EXAMPLES点击Configure直至Generate可用,点击Generate生成工程文件打开VS2010,选择文件-打开-项目/解决方案,打开位于C:\OpenSceneGraph\OpenSceneGraph-Build下面的工程文件OpenSceneGraph.sln 项目打开后如下所示将解决方案配置修改为Release按F7生成解决方案,编译时间大概需要2个小时编译完成后在解决方案资源管理器中找到INSTALL项目,右击选择生成相关文件将自动被拷贝到C:/FlightGear/install/msvc100/OpenSceneGraph目录下FlightGear 2.8.0编译FlightGear的源代码可以从/download/source-code/下载需要下载FligtGear,SimGear和Base Package三个部分可以从ftp://ftp.ihg.uni-duisburg.de/FlightGear/Win32/MSVC/下载第三方库,包括3rdParty和Boost,目前最新的为fgfs-win32-VS100-3rdParty+OSG-20120411.zip和boost_1_44_0-libs-vc100.zip将下载的文件放到C:\FlightGear并解压,同时创建flightgear-build和simgear-build空文件夹,目录设置如下:${MSVC_3RDPARTY_ROOT} /3rdParty /( includes boost, plib, fltk, zlib, libpng, libjpeg, libtiff, freetype, libsvn, gdal, ... )bin /include /lib /boost_1_44_0 /(included in the 3rdParty package linked above)boost /install /msvc100 /( for VS2010 32 bits, or msvc90, msvc90-64 or msvc100-64 for VS2008 32, VS2008 64and VS2010 64 )OpenSceneGraph /( OSG CMake install )bin /include /lib /SimGear /(create this empty for now, subfolders will be created by build process)include /lib /FlightGear /(create this empty for now)include /lib /目录设置如下:SimGear编译打开cmake-guiWhere is the source code设置为C:/FlightGear/simgear-2.8.0Where to build the binaries设置为C:/FlightGear/simgear-build MSVC_3RDPARTY_ROOT设置为C:/FlightGearCMAKE_INSTALL_PREFIX设置为C:/FlightGear/install/msvc100/SimGear 点击Configure直至Generate可用,点击Generate生成工程文件打开位于C:\FlightGear\simgear-build的工程文件SimGear.sln设置解决方案配置为Release按F7生成解决方案,编译完成后,找到INSTALL工程,右击选择生成相关库文件被自动拷贝到C:\FlightGear\install\msvc100\SimGear文件夹中FlightGear编译打开cmake-gui设置如下Where is the source code设置为C:/FlightGear/flightgear-2.8.0Where to build the binaries设置为C:/FlightGear/flightgear-buildCMAKE_INSTALL_PREFIX设置为C:/FlightGear/install/msvc100/FlightGear SIMGEAR_INCLUDE_DIR设置为C:/FlightGear/install/msvc100/SimGear/include 点击Configure直至Generate可用,点击Generate生成工程文件用VS打开C:\FlightGear\flightgear-build下的工程文件FlightGear.sln解决方案配置选择Release点击F7生成解决方案下面需要配置环境变量在Path里添加C:\FlightGear\install\msvc100\OpenSceneGraph\bin;C:\FlightGear\3rdParty\bin修改完环境变量后需要重启电脑以生效继续打开VS工程,将fgfs设置为启动项打开fgfs的工程属性,配置属性-调试-命令参数,添加--fg-root=C:\FlightGear\data按F5运行程序即可。
vs2015 debug条件编译

vs2015 debug条件编译全文共四篇示例,供读者参考第一篇示例:VS2015 Debug条件编译是指在使用Visual Studio 2015进行调试时,在代码中通过条件编译来控制特定代码块的执行。
在软件开发过程中,条件编译是一种常用的技术,可以根据不同的需求在不同的编译环境下编译出不同的代码。
在调试阶段,通过条件编译可以灵活地控制代码的执行流程,使开发人员更方便地进行调试工作。
在VS2015中,条件编译可以通过使用预处理指令来实现。
在代码中使用#if、#ifdef、#ifndef、#else、#elif和#endif等预处理指令可以控制代码在不同环境下的编译。
在调试环境下,通过设置条件编译宏可以使特定代码块在调试时执行,而在发布版本中不被编译进去,从而帮助开发人员快速定位问题并进行调试。
在进行Debug条件编译时,需要注意以下几点:1. 定义条件编译宏:在项目的属性设置中,可以设置不同的编译配置,如Debug和Release。
在Debug配置中,可以设置特定的条件编译宏,如DEBUG,使代码中包含在#ifdef DEBUG 和#endif之间的代码块会在Debug环境下编译执行。
3. 调试Debug环境下的代码:在Debug环境下,由于条件编译所包含的代码会被编译执行,可以更方便地进行代码调试。
可以设置断点、观察变量值等操作来定位代码问题。
4. 优化Release版本的代码:在Release环境下,不包含调试信息和条件编译宏的代码会被编译执行,可以提高代码的执行效率。
在进行条件编译时,需要注意对Debug和Release版本的代码逻辑进行优化处理。
第二篇示例:VS2015是微软公司推出的集成开发环墶(IDE)软件,它可以帮助开发人员在Windows平台上进行更加方便和高效的软件开发工作。
在进行软件开发过程中,debug(调试)是一个非常重要的步骤,它可以帮助开发人员找出代码中的bug并进行修复。
VS2015平面四杆机构运动仿真编程教程20191211
VS2015平面四杆机构运动仿真编程一、软件运行界面二. 编程步骤1. 新建MFC应用程序,项目名取为“FourBar”,在location中指定一个工作路径用于放置程序文件。
2. 在程序向导中选择建立一个“基于对话框”的应用程序,点击“下一步”直至结束向导。
3. 在对话框窗口布局控件。
首先选中已有的静态文本“TODO:在这里设置对话框控件”,delete将其删除。
从右侧控件工具栏中点击“Picture”图片控件,在对话框空白区域拖出一个矩形窗口,右键点击控件边框,弹出属性对话框,设定其控件的ID号:IDC_DISPLAY,Type属性为Rectangle,color为white,其余不变。
再点击Group Box(成组框)控件,在对话框空白区域拖出一个矩形窗口,将其caption改为“输入四杆机构参数”,并在其中布置四个静态文本控件和四个编辑框控件,分别对应输入四杆机构的四个杆长尺寸。
为各个编辑框控件指定控件的ID号:AB杆:IDC_AB;BC杆:IDC_BC;CD杆:IDC_CD;AD杆:IDC_AD。
在成组框的下方添加2个按钮,其caption分别为“开始运动”和“停止运动”,其ID分别为IDC_START和IDC_STOP。
将已有的“确定”按钮拖至下方并将其caption改为“退出”,并删除原有的“取消”按钮。
这样对话框界面就设计好了,后续可以根据需要添加其他功能按钮等。
4. 为对话框中的控件添加相应的成员变量:点击菜单“项目→类向导”。
点击“Member Variables”标签项,依次选中对话框中的编辑控件IDC_AB、IDC_BC、IDC_CD、IDC_AD后点击“添加变量”,为添加对应的成员变量,类型为double,最小值0.0,最大值1000.0,如下图所示。
5. 四杆机构参数包括:各杆长尺寸ab,bc,cd,ad,曲柄位置角φ1、连杆位置角φ2、摇杆位置角φ3、机架倾角θ4。
vs2015 debug条件编译
vs2015 debug条件编译在Visual Studio 2015中,条件编译是一种非常有用的技术,它允许在调试时根据特定条件来执行或跳过代码块。
这在调试复杂的程序时非常有用,因为它可以帮助我们针对特定情况执行特定的代码,或者跳过一些不必要的代码。
下面我将从几个方面详细介绍在VS2015中如何进行条件编译的调试。
1. 使用条件断点,在VS2015中,你可以设置条件断点来在特定条件下暂停程序的执行。
在设置断点后,右键单击断点,然后选择“条件”,在弹出的对话框中输入你想要的条件,比如变量的特定值或者表达式的真值。
当程序执行到这个断点时,它会检查条件,只有在条件满足时才会暂停程序。
2. 使用条件编译指令:在代码中,你可以使用预处理指令来实现条件编译。
比如,你可以使用`#if`、`#else`和`#endif`来根据条件编译不同的代码块。
例如:csharp.#define DEBUG.// ...#if DEBUG.Console.WriteLine("Debug 模式下执行的代码");#else.Console.WriteLine("非 Debug 模式下执行的代码");#endif.在这个例子中,当`DEBUG`被定义时,`Console.WriteLine("Debug 模式下执行的代码")`会被编译进程序,否则会编译`Console.WriteLine("非 Debug 模式下执行的代码")`。
3. 使用条件编译属性:在VS2015中,你还可以使用属性来实现条件编译。
你可以在项目属性中设置不同的条件编译标识符,然后在代码中使用这些标识符来进行条件编译。
比如,在项目属性中设置了一个名为`DEBUG`的条件编译标识符,那么你可以在代码中这样使用:csharp.#if DEBUG.// 这里是在 Debug 模式下执行的代码。
vs2015使用教程
vs2015使用教程VS2015(Visual Studio 2015)是一款由微软公司开发的集成开发环境(IDE),可以用于多种编程语言的开发,如C++、C#、Visual Basic等。
本文将为大家介绍如何使用VS2015进行开发,并重点介绍一些常用的功能和操作。
首先,在安装完VS2015后,我们打开软件,进入主界面。
在主界面的顶部有许多常用的工具栏,如“文件”、“编辑”、“查看”、“调试”等。
通过这些工具栏我们可以方便地对项目进行管理和操作。
接下来,我们来了解一些常用的快捷键和操作。
Ctrl+N可以快速创建新项目,Ctrl+Shift+N可以创建新的文件。
Ctrl+O可以打开一个已经存在的文件,Ctrl+Shift+O可以打开一个已经存在的项目。
Ctrl+S可以保存当前文件,Ctrl+Shift+S可以保存所有文件。
Ctrl+Z可以撤销上一步操作,Ctrl+Y可以重做上一步操作。
通过这些快捷键,我们可以提高开发效率。
在VS2015中,我们可以方便地进行代码编写、调试和测试。
在新建项目后,我们可以在项目资源管理器中右击项目名称并选择“添加”来添加文件。
在编辑器中我们可以编写代码,并且VS2015会自动进行代码补全和代码提示,方便我们编写代码。
在项目资源管理器中,我们可以对项目进行管理,例如添加或删除文件、创建文件夹等。
右击文件可以选择“打开”、“重命名”、“删除”等操作,方便我们对文件进行管理。
VS2015还提供了调试工具,可以协助我们定位和解决程序中的问题。
在编写完代码后,我们可以通过点击工具栏上的“调试”按钮或按下F5键来开始调试。
在调试模式下,我们可以通过设置断点来暂停程序的执行,查看变量的值以及跟踪函数的执行过程。
在使用VS2015进行开发过程中,我们还可以使用NuGet包管理器来方便地管理和安装第三方库和工具。
我们可以在项目资源管理器中右击项目名称并选择“管理NuGet程序包”,然后在搜索框中输入我们要安装的包名,就可以找到并安装该包。
VS2015静态编译libcurl(C++curl封装类)
VS2015静态编译libcurl(C++curl封装类)⼀、最新libcurl静态编译教程(curl-7.51版/curl-7.52版)1、安装perl,在官⽹下载,安装好以后,测试perl -v是否成功2、编译openssl(已编译好的)perl Configure VC-WIN32 --prefix=D:\opensslms\do_ms.batnmake -f ms\nt.mak(静态编译)nmake -f ms\nt.mak install3、下载libcurl(已编译好的7.51版 7.52版)在源码的projects中可以找到vc14这个项⽬⽂件,打开即可。
然后查看项⽬的openssl的inc32⽬录的路径在哪⾥,可以看到../../../../../openssl/inc32,所以openssl和libcurl是出于同级⽬录的。
接着添加openssl中的lib⽬录下的libeasy32和ssleay32这2个静态库到依赖项中。
设置下你要编译的项⽬的MTD还是MT,然后就可以编译了。
当然也可以下载我编译好的,在上⾯的地址中。
4、这⾥有⼀份⾼⼿进⼀步封装的类,⾮常好⽤()⽀持同步和异步请求。
⼆、简单使⽤教程1、添加包含⽬录:libcurl中的include2、添加库⽬录:libcurl中的lib⽬录3、添加预编译宏:USE_OPENSSL,CURL_STATICLIB4、添加库⽂件:crypt32.libws2_32.libwldap32.liblibcurl.lib5、访问12306⽹站,轻松绕过https加密的例⼦:[cpp]1. #include "stdafx.h"2. #include <stdio.h>3. #include <windows.h>4. #include <iostream>5. #include <string>6. #include <curl/curl.h>7. using namespace std;8.9. size_t Reply(void * ptr, size_t size, size_t nmemb, void * stream)10. {11. string* str = (string*)stream;12. (*str).append((char*)ptr, size*nmemb);13. return size*nmemb;14. }15. wstring str_cvt(const string& from_str, int cvt_type) {16. int wstr_len = MultiByteToWideChar(cvt_type, 0, from_str.c_str(), -1, nullptr, 0);17. wchar_t *wstr = new wchar_t[wstr_len + 1];18. memset(wstr, 0, (wstr_len + 1)*sizeof(wchar_t));19. MultiByteToWideChar(cvt_type, 0, from_str.c_str(), -1, wstr, wstr_len);20. wstring ret_str(wstr); delete[] wstr;21. return ret_str;22. }23. string str_cvt(const wstring& from_str, int cvt_type) {24. int str_len = WideCharToMultiByte(cvt_type, 0, from_str.c_str(), -1, nullptr, 0, nullptr, nullptr);25. char *str = new char[str_len + 1];26. memset(str, 0, str_len + 1);27. WideCharToMultiByte(cvt_type, 0, from_str.c_str(), -1, str, str_len, nullptr, nullptr);28. string ret_str(str); delete[] str;29. return ret_str;30. }31.32. int main()33. {34. string data; // 返回的内容35. CURL *curl;36. CURLcode res;37.38. curl_global_init(CURL_GLOBAL_ALL);39.40. curl = curl_easy_init();41. if (curl) {42. curl_easy_setopt(curl, CURLOPT_URL, "https:///otn/login/init");43. curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);44. curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);45. curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Reply);46. curl_easy_setopt(curl, CURLOPT_WRITEDATA, &data);47. res = curl_easy_perform(curl);48. if (res != CURLE_OK)49. fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));50. curl_easy_cleanup(curl);51. }52. curl_global_cleanup();53. cout << str_cvt(str_cvt(data,CP_UTF8),CP_ACP) << endl;54. getchar();55. return 0;56. }四、参数详解:1、全局环境初始化[cpp]1. curl_global_init(CURL_GLOBAL_ALL);2. curl_global_cleanup();CURL_GLOBAL_ALL 初始化所有可能的值,⼀般⽤这个宏CURL_GLOBAL_WIN32 初始化winsock库CURL_GLOBAL_SSL 初始化与ssl相关的环境2、初始化curl[cpp]1. CURL *curl = curl_easy_init();2. curl_easy_cleanup(curl);初始化,获取⼀个curl对象,⽆参函数3、⾮常重要的函数,设置curl的配置信息[cpp]1. CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...)a、设置url:防⽌301、302跳转:[cpp]1. curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION,0);请求的地址:[cpp]1. curl_easy_setopt(curl, CURLOPT_URL, "");b、设置post:[cpp]1. curl_easy_setopt(curl, CURLOPT_POST, 1);2. curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=xxx");c、设置coockie[cpp]1. curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "D:/coockie.txt");d、设置数据接受[cpp]1. curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION, ShowHtml);2. curl_easy_setopt(curl, CURLOPT_WRITEDATA, &retStr);e、设置进度条[cpp]2. curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_callback);3. curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, progress);f、设置ssl忽略验证[cpp]1. curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);2. curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);g、设置头信息接受返回的正⽂是否有头信息: curl_easy_setopt(curl, CURLOPT_HEADER, 1);表⽰有[cpp]1. curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, ShowHtml);2. curl_easy_setopt(curl, CURLOPT_HEADERDATA, &retStr);h、设置上传[cpp]1. curl_easy_setopt(curl, CURLOPT_READFUNCTION, ShowHtml);2. curl_easy_setopt(curl, CURLOPT_READDATA, &retStr);i、设置传输时间[cpp]1. curl_easy_setopt(curl, CURLOPT_TIMEOUT, 30);2. curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 30);j、设置请求头信息默认头信息:Host:http1.1(⼤部分http1.0)版本都要求客户端请求提供这个信息头。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FlightGear2016.4.1+VS2015编译指南
前言:本人之前也看了许多网上的教程,但编译一直出现各种问题(和操作系统位数,第三方库文件版本,VS版本,FlightGear版本都有一定的关系),花了两个星期终于编译成功了。
因此整理了教程,希望能对大家有所帮助。
一、编译前准备工作
1、Cmake下载安装:上cmake官网https:///download/下载CMAkE并安装,我用的版本是cmake3.6.3
2、OSG二进制文件下载:(自己编译也可以,但是耗时不说,还容易出现不兼容的问题),可以从官方的编译教程里面下载/Building_using_CMake_-_Windows,如下图所示:
3、第三方库3rdParty及Boost下载:一样的也是从官方的编译教程里面下载(注意若要编译64位的程序要下载3rdParty.x64)/Building_using_CMake_-_Windows,如下图所示:
4、simgear2016.4.1、flightgear2016.4.1源码和fgdata(程序启动时加载的地形、机场、飞机模型文件等都在这里面)下载:链接https:///projects/flightgear/files/release-2016.4/,下载划线的三项,如下图所示:
5、构建编译目录:我在C盘下建立一个根文件夹FlightGear,然后把上面下载的编译所需文件的压缩包都解压到这个文件夹中,并新建两个文件夹:分别重命名为simgear-build和flightgear-build用来存放Cmake生成的可编译文件,如下图所示:(PS:plib和freeglut如果需要的话也可以自己去下载)
Intstall文件夹下面再建立文件夹msvc140-64;msvc140-64下面建立文件夹SimGear和FlightGear(用来存放编译后的程序);将下载的OSG二进制文件解压至msvc140-64里面;最后在SimGear文件夹里面新建两个文件夹include和lib。
如下图所示:
准备工作做完就可以开始编译了O(∩_∩)O~~
二、simgear编译
1、打开Cmake,将源码目录指定为C:/FlightGear/simgear-2016.4.1,生成目录指定为C:/FlightGear/simgear-build,单击configure按钮。
将CMAKE_INSTALL_PREFIX这一项设为C:/FlightGear/install/msvc140-64/SimGear,再次单击configure按钮,若出现一大堆not-found不要惊慌,这是因为Cmake找不到OSG库文件,这时候需要配置环境变量。
右击“我的电脑”-“属性”-“高级系统设置”-“环境变量”,找到系统变量里面的PATH,单击编辑,添加OSG路径,3rdParty.x64路径,Boost路径
注意!配置完环境变量后重启电脑方可生效。
接下去再次点击configure,如果没有错误,显示Configuring done就可以点击generate按钮生成。
2、打开simgear-build文件夹,打开生成的SimGear.sln文件。
在VS2015上方选中Release,64位
在右侧右击“解决方案‘SimGear’”,再单击生成解决方案即可
编译完毕,右击解决方案管理器中的INSTALL,单击生成。
这时候你会发现msvc140-64下面的lib和include里面已经生成了文件。
恭喜你!接着就可以进行flightgear的编译了.../(ㄒoㄒ)/~~
三、flightgear编译
1、打开Cmake,将源码目录指定为C:/FlightGear/flightgear-2016.4.1,生成目录指定为C:/FlightGear/flightgear-build,单击configure按钮,将CMAKE_INSTALL_PREFIX这一项设为C:/FlightGear/install/msvc140-64/FlightGear
2、配置环境变量,在之前的基础上往path里面添加编译生成的SimGear路径: C:\FlightGear\install\msvc140-64\SimGear\include,然后重启电脑,继续完成cmake配置
若出现警告找不到Qt没有关系,请忽略,只要没有错误即可,单击generate生成。
3、打开flightgear-build文件夹,打开生成的FlightGear.sln文件。
在VS2015上方选中Release,64位
生成解决方案,然后仿照编译SIMGear的步骤,INSTALL即可。
4、编译成功后,右击fgfs,设置为启动项;并设置fgfs 的工程属性,配置属性-属性-命令参数,添加--fg-root=C:\FlightGear\data
把对应版本的数据包(fgdata)FlightGear-2016.4.1-data.tar.bz2 解压出来,放到C:\FlightGear\install\msvc140-64\FlightGear下,并改名为data
按ctrl+F5即可运行程序。
OK!大功告成!!!。