查看: 3399|回复: 16

请教错误原因

[复制链接]

该用户从未签到

发表于 2009-11-26 16:18:49 | 显示全部楼层 |阅读模式
在学习《OSG程序设计教程》时,实例十六:建立MFC单文档OSG程序 编译出现两类错误:
(1)error C2664: “cOSG::InitOSG”: 不能将参数 1 从“const wchar_t *”转换为“std::string”
(2)“_beginthread”: 找不到标识符
        “_endthread”: 找不到标识符
可是在运行OSG自带的多文档例子时没有这样的问题出现,望达人指点一下 谢谢~~~

该用户从未签到

发表于 2009-11-26 16:38:21 | 显示全部楼层
我没有这本书和这个例子的代码。不过这两个问题显而易见都是您少加了某个头文件或者工程设置不符所致,与是否使用OSG并无关联,您可以自行检查一下。

该用户从未签到

发表于 2009-11-26 16:48:08 | 显示全部楼层
)“_beginthread”: 找不到标识符
        “_endthread”: 找不到标识符
缺少头文件 #include <process>

error C2664: “cOSG::InitOSG”: 不能将参数 1 从“const wchar_t *”转换为“std::string”

CSting modelname;
InitOSG(modelname.getBuffer())

该用户从未签到

 楼主| 发表于 2009-11-26 16:54:26 | 显示全部楼层
我检查了好几遍了,感觉头文件和工程设置没什么问题啊 郁闷了一天了 碰到过类似问题的麻烦解答一下啦~~~
2# array

该用户从未签到

发表于 2009-11-26 17:02:28 | 显示全部楼层
#include <process.h>

该用户从未签到

发表于 2009-11-26 17:02:55 | 显示全部楼层
gamecamer给出的解释我想还是很明确的,当然第二个问题可能也可以通过更改工程设置里的UNICODE选项来解决

该用户从未签到

发表于 2009-11-26 17:04:30 | 显示全部楼层
多字节和unicode的区别 我也经常搞混

该用户从未签到

 楼主| 发表于 2009-11-26 17:10:37 | 显示全部楼层
本帖最后由 54321 于 2009-11-26 17:13 编辑

找不到标识符的解决了 可是参数转换的那个错误还是有 改成GetBuffer也不行啊
3# gamecamer

该用户从未签到

发表于 2009-11-26 17:15:17 | 显示全部楼层
#include <process.h>

该用户从未签到

发表于 2009-11-26 17:18:27 | 显示全部楼层
Character Set :Use Multi-Byte Character Set

该用户从未签到

发表于 2009-11-26 17:19:53 | 显示全部楼层
CString modelname;
std::string _modelname (modelname.GetBuffer(0));
InitOSG(_modelname);

该用户从未签到

 楼主| 发表于 2009-11-26 17:35:08 | 显示全部楼层
还是不行啊 运行另一个多文档例子就不报错的的 照样用的GetString
11# gamecamer

该用户从未签到

发表于 2009-11-26 17:42:10 | 显示全部楼层
从“const wchar_t *”转换为“std::string”
CString modelname;
std::string _modelname (modelname.GetBuffer(0));
InitOSG(_modelname);
InitOSG的参数就sting类型的

该用户从未签到

 楼主| 发表于 2009-11-26 17:56:14 | 显示全部楼层
对啊 initOSG的参数是String类型啊 就是不行呢 见鬼了~~
13# gamecamer

该用户从未签到

发表于 2009-11-26 18:23:16 | 显示全部楼层
设置编译器 Character Set :Use Multi-Byte Character Set

该用户从未签到

发表于 2010-4-6 23:19:16 | 显示全部楼层
我也在做同一个例子,问一下楼主CMFC_OSG_MDIView::CMFC_OSG_MDIView():
   mOSG(0L)这一句当中的“OL”是什么,在哪定义的?还有我看源代码的例子中没加入#include <process.h>也能运行成功,是不是某个地方设置了就不用在代码中写了?我运行时出现了这样的错误:mt.exe : general error c101008a: Failed to save the updated manifest to the file ".\debug\RambleSystem.exe.embed.manifest". Bpcn 知道是什么原因吗?指点一下

该用户从未签到

发表于 2010-4-7 08:21:36 | 显示全部楼层
mOSG(0L)这一句当中的“OL”是什么,在哪定义的
晕……这让我想起了大学时的硬件设计课,同学抄我作业把0x抄成ox的故事……那里是0L而不是OL,显而易见它是一个长整型的数值0而已。

mt.exe : general error c101008a: Failed to save the updated manifest to the file ".\debug\RambleSystem.exe.embed.manifest"
您的VS工程本身有些问题,尝试清除再重新生成看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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