FLTK 版本 1.3.2,Visual Studio 2012 和 Stroustrup PPP 书的第一个示例

FLTK version 1.3.2, Visual studio 2012 and the first example of Stroustrup's PPP book

本文关键字:PPP Stroustrup 第一个 2012 版本 Studio Visual FLTK      更新时间:2023-10-16

请看一下我想做的每一步,如果有任何步骤是错误的,请告诉我修改它。

1-现在我的C:\驱动器上有MS VS 2012编译器(C:\Program Files\Microsoft Visual Studio 11.0)。

2-我去了fltk网站并下载了1.3.2版本,因为我认为它是新的,因此可以更好地支持。(http://www.fltk.org/software.php?VERSION=1.3.2&FILE=fltk/1.3.2/fltk-1.3.2-source.tar.gz)

3-在我的桌面上解压缩该软件包后,我转到此路径(C:\Users\CS\Desktop\fltk-1.3.2-source\fltk-1.3.2\ide\VisualC6)并在那里找到了"fltk.dsw"文件。我双击它并按确定按钮。每个".dsp"文件都是事先选择的。

4-然后出现一条消息,指出"迁移解决方案项目和项"。有84个项目,之后发生了一些相关的操作。

5-">构建"菜单中,我选择了"构建解决方案"并单击它。花了一些时间才完成,最后,出现了这条消息:

*82>  fltk_gldll.vcxproj -> C:UsersCSDesktopfltk-1.3.2-sourcefltk-          1.3.2ideVisualC6.Debug/fltk_gldllfltk_gldll.dll
========== Build: 84 succeeded, 0 failed, 0 up-to-date, 0 skipped* ==========

6-然后我关闭了Visual Studio,从FLTK的主文件夹中打开lib文件夹,并将除README.lib文件之外的七个lib文件复制到我的机器的这个路径中(C:\Program Files\Microsoft Visual Studio 11.0\VC\lib)。

7-然后我转到FLTK的主文件夹并将FL文件夹复制到此路径(C:\Program Files\Microsoft Visual Studio 11.0\VC\include)。现在,包含目录包含一个名为 FL 的文件夹。

8-我也在这个路径中找到了fltk.sln文件(C:\Users\CS\Downloads\Compressed\fltk-1.3.2-source\fltk-1.3.2\ide\VisualC2010)。我也安装了它(然后是构建解决方案)。我不应该也安装它吗?

9-然后,我从Visual Studio创建了一个"Win32项目",将其命名为"Win32Project1"。并做了如下工作:

Win32Project1 --> OK --> Next --> 单击"空项目" --> 完成。 在"解决方案资源管理器"中,右键单击"Win32Project1"-->选择"添加"-->新项-->选择"C++文件(.cpp)"-->将项目命名为"Win32Project1" -->添加。

10-现在这个新项目是空的,底部只有这条消息:VMware虚拟调试器已成功加载。这就是为什么因为我在我的机器上安装了VMware Workstation程序,所以我认为。

11-然后我单击了">项目"菜单并选择"属性"。

12-然后链接器-->输入,"其他依赖项"文本字段中,我写了这个文本:fltkd.libwsock32.lib comctl32.lib fltkjpegd.lib fltkimagesd.lib

13-"忽略特定默认库"文本字段中,我编写了libcd.lib

14-然后C/C++-->代码生成,并在运行时库中预先选择多线程调试DLL(/MDd)。所以我只是点击了确定。

15-然后我在该项目上编写了第1160页(D.5)的简单代码,并按F5

#include <FL/Fl.h>
#include <FL/Fl_box.h>
#include <FL/Fl_Window.h>
//***************************
int main() 
{
Fl_Window window(200, 200, "Window title");
Fl_Box box(0,0,200,200, "Hey, I mean, He llo, World! ");
window.show();
return Fl::run();
}

16-发生错误,指出:

E*rror 1 错误 LNK1104: 无法打开文件 'fltkd.lib wsock32.lib comctl32.lib fltkjpegd.lib fltkimagesd.lib' c:\Users\CS\documents\visual studio 2012\Projects\Win32Project1\Win32Project1\LINK*

所以我返回到链接器-->输入,在"其他依赖项"文本字段中,我单击<<em>编辑...>,并用新行分隔每个.lib文件。又跑了。 下一个错误是这样的: 错误1 错误 LNK1104: 无法打开文件 'fltkjpegd.lib' c:\Users\CS\documents\Visual Studio 2012\Projects\Win32Project1\Win32Project1\LINK

17-所以我再次转到(fltk-1.3.2-source\fltk-1.3.2\lib)并复制了除自述文件之外的所有.lib文件(有13.lib文件)并将它们粘贴到该路径(C:\Program Files\Microsoft Visual Studio 11.0\VC\lib)并重新运行代码。这次代码成功。哇。

18-因此,在这次成功之后,我从Stroustrup的网站下载了编程代码zip文件,并将GUI文件夹中的所有.h.cpp文件(10个文件)复制到此路径的包含文件夹中(C:\Program Files\Microsoft Visual Studio 11.0\VC\include)。还有一个Makefile文件,我没有将其复制到包含目录中。然后我清除了前面的代码,并将第 441 页(第一个示例)中编写的代码编写到该项目中并运行它。

//
// This is example code from Chapter 12.3 "A first example" of
// "Programming -- Principles and Practice Using C++" by Bjarne Stroustrup
//
#include "Simple_window.h"    // get access to our window library
#include "Graph.h"            // get access to our graphics library facilities
//------------------------------------------------------------------------------
int main()
{
using namespace Graph_lib;   // our graphics facilities are in Graph_lib
Point tl(100,100);           // to become top left  corner of window
Simple_window win(tl,600,400,"Canvas");    // make a simple window
Polygon poly;                // make a shape (a polygon)
poly.add(Point(300,200));    // add a point
poly.add(Point(350,100));    // add another point
poly.add(Point(400,200));    // add a third point 
poly.set_color(Color::red);  // adjust properties of poly
win.attach (poly);           // connect poly to the window
win.wait_for_button();       // give control to the display engine
}
//------------------------------------------------------------------------------ 

19-有13个错误,第一个错误是说:

错误8 错误 C2872:"多边形":不明确的符号 C:\用户\cs\文档\Visual Studio 2012\项目\win32project1\win32project1\win32project1.cpp 20

20-所以我使用了这个截图代码Graph_lib::P olygonpoly;而不是这个Polygon poly;并再次运行代码。再次有 11 个错误,首先是这样的:

*错误 9 错误 LNK2001:未解析的外部符号"受保护:虚拟无效__thiscall Graph_lib::窗口::d原始(无效)"(?draw@Window@Graph_lib@@MAEXXZ) C:\用户\CS\文档\Visual Studio 2012\项目\Win32项目1\Win32项目1\Win32项目1.obj*

现在我还能做什么努力呢?

我终于找到并解决了这个问题。具体如下:

首先,没有必要将一些名为 *Graph_lib* 的库添加到链接器输入文本字段中,即使我们假设整个机器中有一个具有该名称的库! 对PPP第411页(第一个示例)的代码项目唯一需要做的更改是在Polygon poly;之前添加Graph_lib::。之后,我们需要的是向项目添加一些.cpp文件。我将从Stroustrup的网站下载的GUI文件夹的所有.cpp文件添加到项目中(它们是Graph.cpp,GUI.cpp,Simple_window.cppwindow.cpp),然后重新运行了该项目。它成功地显示了结果。 无论如何,我感谢你们这些好人,尤其是"杯子"。