VS2008--为什么只能查看头文件里的函数头声明,而找不到函数体定义??

rt,我在VS2008里面,除非我把这个.cpp加入到我的项目中,查看函数定义时,才能转到函数体定义,如何设置才能,不把这个.cpp加入到我的项目中也能那样做????
为什么我看到有个程序,没有在项目里包含那些源文件,但是却使用了里面定义的函数呢?而且能找到函数体·····我原本也可以编译,因为有lib库文件。 我有这些源文件,但是因为用到的源文件太多了,有几十个,而且需要改动他们,所以不加进去就不能改动他们,加进去的话又太多,看着不方便·······

你们说的我都很清楚~~~只是你们没有看懂我要做什么!

汗~ 其实很多库函数都是已经被编译成静态库(*.lib)或目标代码(*.obj)文件的。它们的函数原型被写在相应的头文件中,相当于一个接口,被其他程序调用。具体的实现部分已经被编译好了。所以当然看不到函数体的定义。当你的程序被编译时,编译程序会取出静态库中的目标代码,链接到你的EXE文件中。

这就好比你写好的DLL文件,具体函数都已被编译好了,那个.h文件只是提供原型,供其他程序调用的。

其实Windows API函数就是这样,相关的原型都在windows.h中,可真正的的函数实现代码已被编译好了,封装在Kernel32.dll、User32.dll等这些系统DLL中。

讲到这里,你应该明白了吧?呵呵。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-28
没加到项目里不就是等同于没有吗- -没有貌似就找不到了吧。。。我是这么理解的- -

------------
还真没试过,难道那个工程调用的函数自定义在了一个dll中,并且在同一解决方案中?楼主可以试试。

至于十几个文件,那基本是用的 面向对象 的代码吧,那就不要看文件了,直接去查看类视图不是更方便?

还有- - 为啥文件多了就看这不方便了呢。。。。滚动条太长?本回答被提问者采纳
第2个回答  2010-04-27
没有添加到项目中是不能利用这个文件的,别说转到定义了,就是编译也编译不过吧
第3个回答  2010-04-27
不加入到我的项目中式不同直接利用VS自带的转到定义功能去寻找的
不过,可以利用MSDN
第4个回答  2010-05-03
好像VS2008真没这个功能
调试的时候跟进去吧

VS2008--为什么只能查看头文件里的函数头声明,而找不到函数体定义??
汗~ 其实很多库函数都是已经被编译成静态库(*.lib)或目标代码(*.obj)文件的。它们的函数原型被写在相应的头文件中,相当于一个接口,被其他程序调用。具体的实现部分已经被编译好了。所以当然看不到函数体的定义。当你的程序被编译时,编译程序会取出静态库中的目标代码,链接到你的EXE文件中。...

为什么VC的头文件里面的函数只有声明却没有定义?
定义是有的,有一些定义被编译成了二进制码了,在头文件中应该可以看到预处理把这些文件包含进去了,就像你要静态调用dll文件就要用预处理把lib文件包含进去一样,至于各个函数的功能,如果是纯运算的那就是编译器的制作者写的,如果是对文件读写,创建窗口,这些就是调用了API函数 ...

C++调用类头文件为什么只需要include声明部分而不需要类的定义部分
1. 编写代码,2. 编译器进行编译,compile 3. 编译器进行连接。4. 执行。由于C++语言支持多文件工程。需要经过编译和连接的过程。打个比方,你要建造一架飞机,需要发动机,机翼,机身,尾翼,起落架。你可以把这几个部分交给专门的厂商去制作,这就是编译过程。这么多零件交给你,你只需要组装起来就...

linux下明明包含了函数声明的头文件,为什么还显示没有定义的参数
比如自己定义了个sum.cpp sum.h 在main.cpp中调用,实际上是main调用了sum的库,所以要确保这个库存在,因此sum.cpp是需要编译生成对应库的,如果不去指定就什么都没有 所以要这样 g++ main.cpp sum.cpp;不能只编译main.cpp。

头文件里的每一个函数都看的见,但是却看不到源文件!为什么呢?我很想看...
lib这些库只需要对使用者提供头文件,函数的实现通过链接对应的lib 部分库函数的源代码还是可以看的 比如: 安装盘(包)目录: VC98\\CRT\\SRC有一些简单的函数实现 其他的好多WindowsAPI没有代码,可以下载一个叫React OS的源代码,导入Source Insight ,在里面找,...

vs2008 如何找出一个函数的声明与定义
把光标定位到函数名字符串中,右键应该有“转到定义”和“转到参考”,对应英文应该为"go to definition"和"go to declaration"。大概是这么回事,因为没用过VC2008。

为什么只包含头文件就可以使用头文件中声明的函数
所以可以“使用”,但是真正要运行的时候,是需要链接生成可执行程序的,这个时候只有头文件没有函数的实现代码(cpp源码或者库文件),是不可以的 第2种情况是模板,模板的实现通常都放在头文件里,这个时候编译的过程会根据模板推导出具体的实现,从而嵌到代码实现当中,有点类似内联函数 ...

vs2008下用C写了一个程序,在编译连接的时候为什么提示未定义入口点?
->下一步->(附加选项)空项目->完成 在左边的窗口里面,右键->添加->新建项,就可以看到可以见了C++文件了.输入完名称,就可以进行输入了,把上面的代码输进去,Ctrl + F5,就可以运行了!如果直接按F5的话,如果程序没有错误,就会跳出,你会看不到结果,通常在测试自己的代码有没有错误时采用.

vc6.0只能定位到头文件的函数声明,不能定位到cpp文件的具体函数怎么办...
在程序所在路径新建CPP.txt,你把cpp文件中的要用的函数代码段复制进去,其他的不要。然后在你程序中头文件这样写:#include"CPP.txt"。还要在main函数前面声明一下要用的函数。应该就可以用了。

c语言给了头文件printf没有定义不能识别怎么解决求大
首先,在Linux环境中使用GCC编译C代码时,如果出现函数未定义的错误,可以尝试以下步骤解决:1. 检查头文件路径:确保包含的头文件路径正确无误。在代码中使用`#include`命令引入头文件。例如,`#include `用于引入标准输入输出函数库。2. 检查依赖库:函数未定义的错误可能源于缺失的依赖库。在GCC编译命令...

相似回答