visual studio和codeblocks安装教程下运行的代码结果不一样是咋回事

博客分类:
最近接触了编程软件CodeBlocks,并被它的简约、轻量深深吸引了,好想赶快摸透,来永远替换其他庞大的IDE……但是最近关于图形学的编程问题让我怀疑是不是不能完全依靠它……问题如下……
我按照网上文档——Using OpenGL & GLUT in Code::Blocks配置好了所有类库、头文件、动态链接库文件,并且测试成功了~但是当我导入OpengGL的 visual studio工程后,问题就来了。我的操作是这样的
1.导入visual studio 工程。
2.右键选择头文件属性,点上compile file、link file(这是刚搞明白的,不然会出现找不到gl函数的问题!)
3.编译运行一下
编译很顺利,但没有运行,结果如下
-------------- Build: Debug Win32 in OOGLFrame ---------------
Linking executable: Debug\OOGLFrame.exe
Example.h.gch: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
请问问题在哪呢?是不是CodeBlocks无法驾驭现有的visual studio 工程呢?
浏览: 3240 次
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'请问一下下面的代码,为什么错了,,在code::blocks中可以很好运行,但在visual studio 2010中就是错的呢_百度知道
请问一下下面的代码,为什么错了,,在code::blocks中可以很好运行,但在visual studio 2010中就是错的呢
#include&stdio.h&intmain(){voidcopy_string(char*from,char*to);char*a=&Iamateacher.&;printf(&%d\n&,sizeof(a));charb[]=&Youareastudent.&;char*p=b;printf(&stringa=%s\nstring...
#include &stdio.h& int main() {
void copy_string(char *from,char *to);
char *a=&I am a teacher.&;
printf(&%d\n&,sizeof(a));
char b[]=&You are a student.&;
char *p=b;
printf(&string a=%s\nstring b=%s\n&,a,b);
printf(&\ncopy string a to string b:\n&);
copy_string(a,p);
printf(&string a=%s\nstring b=%s\n&,a,b);
return 0; }
void copy_string(char *from,char *to) {
while(*to++=*from++); }昨天我吃完饭后去上课,想了一下这个问题。今天我知道是怎么回事了。就是第六行的这句的问题。printf(&%d\n&,sizeof(a));其实,这是书上的原代码。这句是我自己加的。我想测试一下编译环境给a这个指针变量分配多少个字节。其实在code::blocks中是可以将这个语句放在一些定义的变量或常量前的,但在微软的编译系统中不行。如果将printf(&%d\n&,sizeof(a));这句放在char *p=b;的后面的行中就没问题了。可能是不同的编译系统编译方式和要求不同吧。
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:61
获赞数:284
这肯定是错的 char *a=&I am a teacher.&; 这句话的意思是,我找一个指针a指向一个字符串,这个没有问题,问题是这个字符串的地址和a的地址不是相邻的。因为你没有用new开辟数组。这样当你调用a++的时候,指针会指向a的下一个地址,因为没有开辟,所以我不知道下一个地址放的是什么,这样就越界了。为了保护系统所以才会报错。char b[]=&You are a student.&; 就不同了,b开辟了数组,所以b之后的地址系统是知道的。
所以以后一用到char* a;接下来就应该考虑给他分配内存,不然就会出现一个运行错误! 编译是没有问题的!
字符串常量和字符数组搞混了。。。
这代码是没错的。看我补充的就知道了。
采纳数:82
获赞数:232
代码应该没什么问题,报什么错?
对啊,,哈哈,其实是微软那个编译的环境有问题。
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。2添加评论分享收藏感谢收起赞同 210 条评论分享收藏感谢收起写回答一个偶然的机会,我发现了codeblocks这款IDE,因为它主要用于开发c/c++,所以没有visual studio那么臃肿,感觉比较快捷,好用。但是其资料多为英文,本着利人利己的初衷,我决定挑选一些开发中必须使用的功能,将官方文档译为中文,以便查阅。本篇主要介绍此IDE的debug应用。本文基于的环境为windowsxp + codeblocks10.05。 1.
经常使用visual studio编译器的可能不怎么关注编译参数,而codeblocks使用的是gnu的gcc编译器,所以如果希望生成可调试的程序,需要加入命令参数-g,这个选项说明生成的可执行文件中含有调试标记(比如源文件中的某行代码对应了哪几条汇编指令),同时要确保一定不能选中-s选项,这个选项用来清除可执行文件中所有的调试标记。具体操作如下:
菜单中 Project =& Build Options
既然是debug,就需要在调试中对变量的值进行观察,这时需要打开IDE的watch窗口,打开方式如下:
菜单中debug=& Debugging windows=&watches
当以debug方式运行程序时候会出现下面的窗口:
注意1:红色框圈出的两个选项可以讲当前的watch列表保存起来,也可以重新将已保存的watch列表重新加载进来。
注意2:在进行debug时,在“call stack”调试窗口中(调出的方式同调出watch窗口)双击一个栈帧(frame),但是在watch窗口中相对应的信息不会更新,如果需要观察特定栈帧的相应信息,需要在"call stack"窗口中在需要观察的栈帧那一行上右击,然后选择“Switch to this frame”。操作如下图:
设置断点,调试程序需要设置断点,然后在watch窗口中进行观察变量的变化。设置断点是很重要的一环
设置断点的方式:
(1)将鼠标定位于需要设置断点的那一行,然后点击菜单中的 Debug =& Toggle Breakpoint
(2)在需要加入断点的那一行中右击,然后选择Toggle Breakpoint或者按F5快捷键
这样就可以开始调试运行了
点击菜单中的Debug=&start或者按F8
运行断点处停止,如果想观察某个变量,先要拖动鼠标选中这个变量,然后右击,就会有有watch+变量名这一菜单项,单击它就可以在watch窗口中加入此变量了
如果使用的是codeblocks8.02版本,其中使用的编译器和调试器版本为 MinGW 和 gdb 6.7,则如果在c++构造函数中设置断点,调试器将不能工作,一下是一些小技巧。
设置在构造函数和析构函数中的断点在GDB 6.7以及更低的版本中是不能工作的,但是如果在构造函数开始有成员函数的调用,可以将断点设在成员函数中,然后调用完成员函数就可以通过next step(F7)继续观察构造函数调用。例如:
需要观察构造函数MyClass调用,可以先设置一个成员函数DebugCtorDtor,讲断点设在22行,然后开始debug,程序会停在断点处,按F7,程序执行13行,就可以查看构造函数的调用情况了。
Codeblocks断点调试
首先,新建一个C/C++的codeblocks项目。具体步骤如下:1.
新建一个工程(project),注意路径中不要包含中文,否则后面断点调试时会出现问题
直接选择空工程
CodeBlocks调试功能快捷教程
在程序设计中,单步调试能够跟踪程序的执行流程。跟踪过程中,还可以观察变量的变化,从而发现其中存在的问题。单步执行除了可以帮助我们发现设计的程序中存在的问题,对于初学者,还可以帮助我们理解语言的机制。 ...
codeblocks的debug教程
以下为codeblocks16.01的debug教程,例子为判断闰年还是平年的小程序,代码是:
int isLeapYear(int);
int main()
codeblocks debug 的那些事
没办法运行到光标处,一运行就闪退,别人都没有。在网上查,原来是我的工程路径中有中文!然而不能有中文。
还有一些其他不能调试的解决方法:
1、新建一个工程,然后再开始调试。CodeBlock无法...
Codeblocks17.12不能dubug问题(win10)
Codeblocks17.12不能dubug问题
C开发工具(codeblocks)调试(Debug)
by ??? Echo 戴帽子的鹿 ° (http://blog.csdn.net/echo_gaoguichun)
工具:codeblocks-...
最近在学习C语言,使用Code::Blocks进行开发。在进行debug时踩了很多坑,现在列出来,以警示自己,也希望大家在用Code::Blocks进行debug时不要调到同样的坑里。
注意事项:
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fecee54f5061e5a...
一个偶然的机会,我发现了codeblocks这款IDE,因为它主要用于开发c/c++,所以没有visual studio那么臃肿,感觉比较快捷,好用。但是其资料多为英文,本着利人利己的初衷,我决定挑选...
没有更多推荐了,一、使用Visual
Studio 2010旗舰版编写win32程序,对于怎么连接静态链接库*.lib文件有两种方式。
1、在#include
&Windows.h&这一句之后加一句#pragma
comment(lib,"winmm.lib")
2、或者在Visual
2010C++编译器的连接器设置里添加上winmm.lib文件。
上述两种方式效果是一样的,任选一种即可。
二、但是使用codeblocks编写win32
gui程序(项目选择win32
project ),需要连接静态连接库时(比如winmm.lib)时,
最好使用::
setting =========》linker
setting========》add
添加静态链接库。C:/Program
Files/CODEBLOCKS/MINGW/LIB/之下寻找libwinmm.a文件。
注意:winmm.lib等静态链接库是编译器自带的,不是操作系统或WINDOWS
首先包含头文件以及库目录
#include &mmsystem.h&
#pragma comment(lib, &winmm.lib&)
今天QT群里有位朋友向大家询问如何加载第三方库到项目中去,q
CodeBlocks创建静态链接库和使用
本文主要介绍了CodeBlocks下创建并使用静态链接库。
codeblocks添加库文件 libpthread.a
codeblocks 的project/Build options/Linker setting 在左边添加libpthread.a,右边添加-lpthread即可。...
论#pragma comment和winmm.lib函数(为什么palysound出现错误原因)
来自百度百科和http://blog.csdn.net/demon_xyz/article/details/5600295
#pragma comment( comment-type ,[&...
需要在VS2008开发的软件中加入声音播放,需要使用PlaySound函数,具体方法是,
1, 在stdafx.h中加入#include
2,在配置中加入winmm.lib,如下图。
这是在我编写利用MCIzhong打开
本文转自于:http://www.webtropy.com/articles/art9-2.asp?lib=winmm.dll
auxGetDevCapsauxGetNumDevsauxGetV...
没有更多推荐了,}

我要回帖

更多关于 visualstudio价格 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信