查看: 1374|回复: 5

视频教程第三讲超级指针部分程序总是编译不正确

[复制链接]

该用户从未签到

发表于 2011-8-23 12:35:40 | 显示全部楼层 |阅读模式
这是我敲入的程序代码:

//头文件
#ifndef _COMMON_H__
#define _COMMON_H__
#ifdef _DEBUG
#pragma comment(lib,"osgd.lib")
#pragma comment(lib,"osgDBd.lib")
#pragma comment(lib,"osgViewerd.lib")
#pragma comment(lib,"OpenThreadsd.lib")
#pragma comment(lib,"osgGAd.lib")
#else
#pragma comment(lib,"osg.lib")
#pragma comment(lib,"osgDB.lib")
#pragma comment(lib,"osgViewer.lib")
#pragma comment(lib,"OpenThreads.lib")
#pragma comment(lib,"osgGA.lib")
#endif
#endif


//main.cpp
#include "../Common/Common.h"
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
#include <osgGA/GUIEventAdapter>
#include <osgViewer/ViewerEventHandlers>
#ifdef _DEBUG
#pragma comment(lib,"../Debug/Commond.lib")
#else
#pragma comment(lib,"../Release/Common.lib")
#endif
//模拟一个事件类,响应单击h
class PrintName : public osgGA::GUIEventHandler

public:
    virtual void getUsage(osg::ApplicationUsage& usage) const
    {
    usage.addKeyboardMouseBinding("ysx","Great.");
    }
};
int main()
{
//最简单的调入模型
//osgViewer::Viewer viewer;
//osg::Node * node=new osg::Node;
//node=osgDB::readNodeFile("glider.osg");
//viewer.setSceneData(node);
//return viewer.run();
//超级指针
osg::ref_ptr<osgViewer::Viewer>viewer=new osgViewer::Viewer;
osg::ref_ptr<osg::Node>node=new osg::Node;

//读取模型
node=osgDB::readNodeFile("glider.osg");
//添加帮助事件
viewer->addEventHandler(new osgViewer::HelpHandler);
viewer->addEventHandler(new PrintName);

viewer->setSceneData(node.get());
return viewer->run();
}


进行编译后总是出现:
1>------ 已启动生成: 项目: 第三讲, 配置: Release Win32 ------
1>正在编译...
1>main.cpp
1>.\main.cpp(16) : error C2146: 语法错误 : 缺少“,”(在标识符“{”的前面)
1>.\main.cpp(17) : error C2504: “{”: 未定义基类
1>.\main.cpp(17) : error C2143: 语法错误 : 缺少“,”(在“public”的前面)
1>.\main.cpp(17) : error C2059: 语法错误 : “:”
1>.\main.cpp(20) : error C2143: 语法错误 : 缺少“;”(在“.”的前面)
1>.\main.cpp(20) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>.\main.cpp(20) : error C2238: 意外的标记位于“;”之前
1>.\main.cpp(22) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>.\main.cpp(22) : error C2059: 语法错误 : “}”
1>.\main.cpp(22) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>.\main.cpp(22) : error C2059: 语法错误 : “}”
1>生成日志保存在“file://e:\code\第三讲\第三讲\Release\BuildLog.htm”
1>第三讲 - 11 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 1 最新, 0 已跳过 ==========
我检查了好多遍都检查不出来哪里错了,希望哪位高手给我指点一下,非常感谢!

该用户从未签到

发表于 2011-8-23 14:10:11 | 显示全部楼层
回复 1# liuhuan


    class PrintName : public osgGA::GUIEventHandler
   {
   是你这里的括号的问题,你这里的括号不是英文状态输入的。

该用户从未签到

发表于 2011-8-23 14:11:20 | 显示全部楼层
这种问题应该是你自己的输入问题,应该自己排查一下和调试代码。个人觉得应该加强C++的基础学习。

该用户从未签到

发表于 2011-8-23 15:33:45 | 显示全部楼层

该用户从未签到

 楼主| 发表于 2011-8-24 09:21:04 | 显示全部楼层
回复 3# killlu


    好的,非常惭愧,我以前没有C++的基础,由于毕业论文的需要,需要学习一下OSG,希望以后能给予指导,非常感谢!

该用户从未签到

 楼主| 发表于 2011-8-24 09:21:21 | 显示全部楼层
回复 4# tianxiao888


    惭愧 呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表